目前,我们正在使用requirejs将库的JavaScript捆绑在一起。我的任务是迁移到Webpack。
可以使用bundles配置访问构建文件中的每个模块。
define('internal', function () { // <-- some utility method, class...
return function () {};
}
...
define('library', ['internal'], function (internal) { // <-- the main module
});
在消费应用中,它可能看起来像:
define(['internal'], function (internal) {
});
只要require配置在bundles属性中具有内部内容,如下所示:
bundles: {
'library': ['internal']
}
然后将从库中使用内部模块。
我将文件构建为webpack中的库目标,但它目前没有构建多个命名定义。
module.exports = {
entry: {
library: ['main', 'internal']
},
output: {
library: 'libraryname',
libraryTarget: 'amd',
filename: '[name].build.js'
},
/**
Resolve, loaders...
**/
plugins: [
// https://github.com/Waidd/multidefine-library-webpack-plugin
new MultidefineLibraryWebpackPlugin([/* config */])
]
}
使用该配置,它会按照预期的方式与库中内置的定义关闭,但由于不经常使用全局定义队列,因此需要超时。如果我有
require(['library'], function () {
require(['internal'], function () {
//it will be loaded now
}
})
然后它将按预期加载,但如果它们在同一依赖项数组中则不会加载。
无论如何都要让Webpack定义几个外部消耗的模块,这些模块不是主要的&#39;模块?我如何能够在当前requirejs构建系统中外部定义模块?