我是 webpack 新手,所以如果我试图将 Webpack 用于它不适合的东西,我提前道歉。
我正在使用 webpack 发布我的第一个库。我的项目和节点(或 commonjs)环境中有大量 UMD 模块,我想保留目录结构,而在浏览器环境中,我想将所有模块捆绑到一个包中。我的问题是如何实现这一目标。当我的条目文件中有这样的东西时 -
(function(root, factory) {
if (typeof define === 'function' && define.amd) {
// AMD. Register as an anonymous module.
define(['metaAnalytics'], factory);
} else if (typeof module === 'object' && module.exports) {
// Node. Does not work with strict CommonJS, but
// only CommonJS-like environments that support module.exports,
// like Node.
module.exports = factory(require('./AnalyticsNode.js'));
} else {
// Browser globals (root is window)
root.metaAnalytics = factory(require('./AnalyticsBrowser.js'));
}
}(this, function(DAClient) {
//do something with DAClient
}));
我通过 webpack 传递上述文件,它不会将依赖项中的代码引入输出文件。如何使 webpack 自动将 AnalyticsBrowser.js 及其所有依赖项打包到一个包中?那可能吗?
注意 - 我删除了 UMD 包装器并用一个简单的 require 语句替换它们,webpack 能够将代码从它编译到输出中。所以我的问题是为什么它不能将 UMD 模块的依赖项编译到输出文件中。