【问题标题】:Webpack loader order misbehavedWebpack 加载器顺序异常
【发布时间】:2018-01-26 20:09:49
【问题描述】:

我用过 webpack ^2.2.1。我在我的 webpack.config.js 文件中添加了一些加载器。

但是我的装载机没有调用订单。

我使用 babel-loader 将 react-es6 代码转换为 react-es5 代码。我的自定义加载器需要 react-es6 代码。所以我把我的装载机放在第一位。我在每个加载器中都有打印源内容。但每次首先打印 babel-loader 信息。打印我的信息后。

我的装载机顺序正确吗?

帮帮我!提前致谢!

   // webpack.config.js

    module.exports = {
      entry: './src/index.js',
      output: {
         filename: 'bundle.js',
         path: path.resolve(__dirname, './build')
      }
      module: {
         loaders: [
            {
                test: /\.js$/,
                use: 'my-custom-loader'
            },
            {
                test: /\.js$/,
                use: [
                   {
                      loader: 'babel-loader',
                      options: {
                         presets: ['babel-preset-es2015', 'babel-preset-react']
                      }
                   }
                ]
            }
         ]
      }
    }

【问题讨论】:

  • 尝试用多个加载器声明一条规则。现在,您有两个匹配相同模式的规则。此外,module.loaders 在 Webpack 2 中已被 module.rules 取代。
  • 加载器按“从右到左”的顺序使用,因此首先使用数组中的最后一个加载器。见:stackoverflow.com/questions/32234329/…

标签: javascript node.js reactjs webpack babeljs


【解决方案1】:

Webpack 中的加载器按“从右到左”的顺序使用,因此首先使用数组中的最后一个加载器。因此,babel 正在翻译所有内容,而您的 loader 排在第二位。

见:What is the loader order for webpack?

尝试切换加载器的顺序(当然要使用 module.rules 而不是 module.loaders,这样您就可以使用 Webpack 2 中的新模式)

【讨论】:

  • 谢谢@Flocke。现在我明白了。
  • 我实际上不知道...老实说,我猜他们是从左到右的...只是尝试一下 :) 对不起,我从不使用插件,除了忽略不应该的 node_modules被 webpack 打包
  • 好的,我会检查并将结果放入 cmets。 :-)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-07-30
  • 2018-06-28
  • 2019-08-08
  • 1970-01-01
  • 1970-01-01
  • 2016-02-11
  • 1970-01-01
相关资源
最近更新 更多