您好我正在尝试将RequireJS应用程序迁移到Webpack。我的所有js文件都包含在项目中我没有使用node_modules
中的任何内容。为什么要从那里加入?这是一个仅在Web浏览器中使用的Web项目,不使用browserify。
这是我的webpack.config.js:
module.exports = {
resolve: {
modules: [
'private/application/controllers/'
],
alias: {
typeahead: 'system/js/jquery.typeahead.min',
bloodhound: 'system/js/bloodhound.min',
...
}
},
module: {
loaders: [
{ test: /typeahead/, loader: 'imports-loader?jquery' },
{ test: /bloodhound/, loader: 'imports-loader?typeahead' },
...
]
},
plugins: [
new webpack.IgnorePlugin( /^\.\/locale$/, /moment$/ )
],
target: 'web',
entry: {
app: 'system/js/app',
module: 'system/js/module',
...
},
output: {
libraryTarget: 'amd',
filename: '[name].min.js',
path: __dirname + 'public/files/cache'
}
};
我得到的错误:
ERROR in ./node_modules/timers-browserify/main.js
Module not found: Error: Can't resolve 'setimmediate' in '/Users/name/Sites/revamp/node_modules/timers-browserify'
@ ./node_modules/timers-browserify/main.js 51:0-23
@ ./private/application/controllers/system/js/jquery.typeahead.min.js
谢谢!
答案 0 :(得分:0)
我认为您的加载器会在整个项目文件夹中搜索这些文件。
您可以尝试将exclude: /node_modules/
添加到每个加载器。
module: {
loaders: [
{ test: /typeahead/, loader: 'imports-loader?jquery', exclude: /node_modules/ },
{ test: /bloodhound/, loader: 'imports-loader?typeahead', exclude: /node_modules/ },
...
]
},