0

我正在使用 mern.io 我的 web pack 配置看起来像:

var webpack = require('webpack');
var cssnext = require('postcss-cssnext');
var postcssFocus = require('postcss-focus');
var postcssReporter = require('postcss-reporter');

module.exports = {
  devtool: 'cheap-module-eval-source-map',

  entry: {
    app: [
      'eventsource-polyfill',
      'webpack-hot-middleware/client',
      'webpack/hot/only-dev-server',
      'react-hot-loader/patch',
      './client/index.js',
    ],
    vendor: [
      'react',
      'react-dom',
    ],
  },

  output: {
    path: __dirname,
    filename: 'app.js',
    publicPath: 'http://0.0.0.0:8888/',
  },

  resolve: {
    extensions: ['', '.js', '.jsx'],
    modules: [
      'client',
      'node_modules',
    ],
  },

  module: {
    loaders: [
      {
        test: /\.css$/,
        exclude: /node_modules/,
        loader: 'style-loader!css-loader?localIdentName=[name]__[local]__[hash:base64:5]&modules&importLoaders=1&sourceMap!postcss-loader',
      }
      , {
        test: /\.css$/,
        include: /node_modules/ ,
        loaders: ['style-loader', 'css-loader'],
      }

      , {
        test: /\.jsx*$/,
        exclude: [/node_modules/, /.+\.config.js/],
        loader: 'babel',
      }, {
        test: /\.(jpe?g|gif|png|svg)$/i,
        loader: 'url-loader?limit=10000',
      }, {
        test: /\.json$/,
        loader: 'json-loader',
      },
      { test: /\.woff(2)?(\?v=[0-9]\.[0-9]\.[0-9])?$/, loader: "url-loader?limit=1&minetype=application/font-woff" },
      { test: /\.(ttf|eot)(\?v=[0-9]\.[0-9]\.[0-9])?$/, loader: "url-loader?limit=1&minetype=application/font-woff" },


      { test: /\.svg(\?v=\d+\.\d+\.\d+)?$/, loader: 'url-loader?limit=1' }
    ],
  },

  plugins: [
    new webpack.HotModuleReplacementPlugin(),
    new webpack.optimize.CommonsChunkPlugin({
      name: 'vendor',
      minChunks: Infinity,
      filename: 'vendor.js',
    }),
    new webpack.DefinePlugin({
      'process.env': {
        CLIENT: JSON.stringify(true),
        'NODE_ENV': JSON.stringify('development'),
      }
    }),
  ],

  postcss: () => [
    postcssFocus(),
    cssnext({
      browsers: ['last 2 versions', 'IE > 10'],
    }),
    postcssReporter({
      clearMessages: true,
    }),
  ],
};

我想添加一个自定义 css 文件,该文件位于:/public/assets/css/custom.css;那么我的配置是什么?

我可以在 node_modules 中导入 css 文件,例如:require('rc-slider/assets/index.css');

正如它在配置中所说:

{
        test: /\.css$/,
        include: /node_modules/ ,
        loaders: ['style-loader', 'css-loader'],
      } 

我已经复制了条目:

{
        test: /\.css$/,
        include: /public/ ,
        loaders: ['style-loader', 'css-loader'],
      } 

但不工作

4

1 回答 1

0

可以有两种方法来处理这种情况。

1.您可以使用以下添加公用文件夹以提供静态文件。app.use(express.static('public'));

然后,如果您使用服务器端渲染,则可以在 html 中添加文件。

2.

您可以将此文件放在客户端,然后在客户端的 webpack 入口点简单地导入该文件。webpack 将使用样式加载器自动包含它。

于 2017-11-29T18:05:08.113 回答