目前的行为是什么?
导致路由器路由器构造函数的某些部分被删除,导致意外错误。
注意:Webpack 1.14.0版中没有此问题。
生殖 https://github.com/marcalexiei/director-webpack-issue
自述文件中的说明。
有两个分支:
预期的行为是什么? 没有生成错误,路由器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/,
},
],
},
};
系统规格
答案 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"
条目。