如何在 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)是同步的。当您进入模块时,一切都已加载。