如何在 webpack 中指定解析器依赖项?
How to specify resolvers dependencies in webpack?
我正在尝试从 RequireJs 切换到 webpack 来处理 js 加载、sass 处理和其他类似的事情。
在 RequireJs 中可以指定模块的依赖关系
// file.js
require(['moduleA','moduleB'],function(A,B) {
...
}
我想指定模块 A 需要 jquery 例如
// requirejs.config.js
require.config({
...
shim:{
moduleA:{
deps:['jquery']
}
}
})
我正在尝试找到一种在 webpack 中做同样事情的方法
// webpack.config.js
module.exports = {
entry: toObject(glob.sync('src/**/*.js*')),
output: {
path: './bin',
filename: '[name].js'
},
resolve: {
alias: {
'moduleA': '/path/to/moduleA',
...
}
}
};
function toObject(paths) {
// I return an object of paths
}
但我找不到指定模块 A 需要另一个模块的方法!
这里有人知道吗?
你不需要。您只需 require()
您需要的任何模块,它就可用。
你需要用 RequireJS 这样做的原因是 RequireJS 是异步的,模块是异步加载的,因此它需要知道先加载什么。 Webpack(和一般的 CommonJS)是同步的。当您进入模块时,一切都已加载。
我正在尝试从 RequireJs 切换到 webpack 来处理 js 加载、sass 处理和其他类似的事情。
在 RequireJs 中可以指定模块的依赖关系
// file.js
require(['moduleA','moduleB'],function(A,B) {
...
}
我想指定模块 A 需要 jquery 例如
// requirejs.config.js
require.config({
...
shim:{
moduleA:{
deps:['jquery']
}
}
})
我正在尝试找到一种在 webpack 中做同样事情的方法
// webpack.config.js
module.exports = {
entry: toObject(glob.sync('src/**/*.js*')),
output: {
path: './bin',
filename: '[name].js'
},
resolve: {
alias: {
'moduleA': '/path/to/moduleA',
...
}
}
};
function toObject(paths) {
// I return an object of paths
}
但我找不到指定模块 A 需要另一个模块的方法!
这里有人知道吗?
你不需要。您只需 require()
您需要的任何模块,它就可用。
你需要用 RequireJS 这样做的原因是 RequireJS 是异步的,模块是异步加载的,因此它需要知道先加载什么。 Webpack(和一般的 CommonJS)是同步的。当您进入模块时,一切都已加载。