3

我是 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 模块的依赖项编译到输出文件中。

4

0 回答 0