Webpack 2:编译过程后Director路由器无法正常工作

时间:2017-02-01 14:05:14

标签: javascript webpack

目前的行为是什么?

导致路由器路由器构造函数的某些部分被删除,导致意外错误。

注意:Webpack 1.14.0版中没有此问题。

生殖 https://github.com/marcalexiei/director-webpack-issue

自述文件中的说明。

有两个分支:

  • “主人”可以重现问题。
  • “web-pack-1-14-0”具有以前的版本且没有错误。

预期的行为是什么? 没有生成错误,路由器init是一个函数。

配置文件

    module.exports = {
      entry: {
        // app's entry point
        app: './src/app.js',

      },
      output: {
        publicPath: '/public/',
        path: path.join(__dirname, 'public'),
        pathinfo: true,
        filename: '[name].bundle.js',
      },
      resolve: {
        modules: [
          path.join(__dirname, './') , // frontend-app
          'node_modules'
        ],
        extensions: ['.js'],
      },
      module: {
        rules: [
          {
            test: /\.js$/,
            loader: 'babel-loader',

            exclude: /node_modules/,
          },
        ],
      },
    };

系统规格

  • Chrome 55.0.2883.95
  • Safari 10.0.3
  • 节点6.3.1
  • Webpack 2.2.1
  • MacOS 10.12.3

1 个答案:

答案 0 :(得分:4)

TLDR :添加

resolve: {
  mainFields: ['browserify', 'browser', 'module', 'main']
}

到你的配置。

说明:

在webpack1(https://webpack.github.io/docs/configuration.html#resolve-packagemains)中,该字段的默认值为:

["webpack", "browser", "web", "browserify", ["jam", "main"], "main"]

但是,在webpack2(https://webpack.js.org/configuration/resolve/#resolve-mainfields)中,默认值为:

["browser", "module", "main"]

请注意,webpack2默认值中缺少一些项目。特别是,browserify不存在。

这是导演导出的版本:

  "browserify": "./build/director",
  "main": "./lib/director",

./build/director是浏览器兼容的版本,./lib/director是节点1。您必须告诉webpack2使用./build/director,因此您的配置中会显示"browserify"条目。

相关问题