相关疑难解决方法(0)

使用webpack从动态源输出UMD模块

我有一个项目结构,其中包含一个文件夹,当我构建我的webpack配置并将每个文件作为输出版本中的子模块时,我想将其动态导入到UMD模块中.

例如,假设我的来源如下:

/src/snippets/red.js
/src/snippets/green.js
/src/snippets/blue.js
Run Code Online (Sandbox Code Playgroud)

我希望webpack将这些源构建到一个模块中,这个模块允许我作为子模块访问每个模块,就像这样;

const red = require('snippets').red
Run Code Online (Sandbox Code Playgroud)

我尝试遍历snippets目录并创建一个带有文件名和路径的对象,但我无法弄清楚哪个配置属性会指示webpack将它们捆绑到一个文件中并导出每个文件.这是我到目前为止所拥有的:

const glob = require('glob')

module.exports = {
    entry: glob.sync('./src/snippets/*.js').reduce((files, file) => {
        files[path.basename(file,'.js')] = file

        return files
    }, {}),
    output: {
      path: __dirname + '/lib',
      filename: 'snippets.js',
      libraryTarget: 'umd'
    }
}
Run Code Online (Sandbox Code Playgroud)

这出错了: Conflict: Multiple assets emit to the same filename ./lib/snippets.js

关于如何实现我正在寻找的东西的任何想法?

webpack umd

11
推荐指数
1
解决办法
1146
查看次数

Webpack,优化分块给出“冲突:多个块将资源发送到同一文件名”错误

信息

我正在尝试生成自己的 webpack 配置,但在使其正常工作时遇到一些问题。

问题

当尝试使用优化将文件分割成块时,我收到如下错误

错误:冲突:多个块将资产发送到相同的文件名 static/js/bundle.js (块 main 和vendors-node_modules_react-hot-loader_patch_js-node_modules_react_jsx-dev-runtime_js-node_mod-4610d2)

如果我删除优化部分,它可以工作,但不会分块。我查看了 create React app webpack.config.js以获取在生成此内容时引用的内容。

正如您所看到的,他们有优化部分,可在开发和生产中进行分块。为什么我在使用的时候会出现冲突错误?

代码

我的配置的缩小/简化版本(禁用了runtimeChunk,因为它也给出了相同的冲突错误)

webpack.config.js

module.exports = () => {
    process.env.NODE_ENV = "development";
    process.env.BABEL_ENV = "development";

    return {
        mode: "development",
        entry: ["react-hot-loader/patch", "./src"],
        output: {
            path: undefined,
            publicPath: "/",
            filename: "static/js/bundle.js",
            chunkFilename: "static/js/[name].chunk.js",
        },
        optimization: {
            minimize: false,
            splitChunks: {
                chunks: "all",
                name: false
            },
            // runtimeChunk: {
            //     name: (entrypoint) => `runtime-${entrypoint.name}`,
            // },
        },
        resolve: {
            modules: [path.join(__dirname, "src"), "node_modules"],
            alias: { …
Run Code Online (Sandbox Code Playgroud)

javascript reactjs webpack webpack-dev-server

10
推荐指数
1
解决办法
2万
查看次数

标签 统计

webpack ×2

javascript ×1

reactjs ×1

umd ×1

webpack-dev-server ×1