问题标签 [dllplugin]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
856 浏览

javascript - Grunt、Webpack 和 DllPlugin

我无法想象如何DllPlugin/DllReferencePlugin在使用 Grunt 进行构建的同时利用 Webpack。对于那些不了解的人,DllPlugin创建一个单独的包,可以与其他包共享。它还创建一个清单文件(重要)来帮助链接。然后,DllReferencePlugin另一个包在构建时使用它来获取先前制作的DllPlugin Bundle。为此,它需要之前创建的清单文件。

在 Grunt 中,这需要在 grunt 运行之前创建清单文件,不是吗?这是一个简化的代码示例:

webpack.dll.js

webpack.app.js

如果您查看第二部分webpack.app.js,我已经评论了在咕噜声中一切似乎都失败的地方。为了使 DllReferencePlugin 工作,它需要来自 DllPlugin 的清单文件,但在 Grunt 工作流中,grunt 将在 grunt 自身初始化时加载这两个配置,导致该manifest: require('./bundles/my_dll-manifest.json')行失败,因为之前构建的 grunt 步骤webpack.dll.js尚未完成, 意义清单尚不存在。

0 投票
1 回答
2575 浏览

webpack - 通过范围模式选择 webpack dll 包

在 webpack 示例中,特别是

我们可以创建一个依赖于已经预先捆绑的库的捆绑包。手头的例子可以正常工作。也就是说,我们首先导航到examples/dll并运行node build.js以创建库。然后我们导航到examples/dll-user并运行node build.js以创建引用先前捆绑的库的最终捆绑包。

我的问题如下。假设examples/dll我们将配置文件修改为如下所示:

也就是我们添加modulebetadll中。现在我们必须拥有module. 让我们编译 dll 并继续dll-user举例。在这里,我们想做的是制作一个捆绑包,我们可以从中选择将提供的库module。让我们尝试在示例中再添加一行

在这种情况下,我希望能够使用module驻留在betadll 中的那个。不幸的是,我并不幸运。这是我尝试后得到的输出:

有没有办法指定捆绑包应该使用的库?我认为scope选项DllReferencePlugin可以解决问题,但似乎并非如此。

编辑:请注意,添加./a到 beta dll,然后require('beta/a')在示例中使用。似乎 webpack 很难弄清楚 node_modules。

0 投票
0 回答
1322 浏览

reactjs - 如何在服务器端渲染中使用 webpack dll 插件

我正在尝试使用 webpack 的 dllPlugin 来缩小我的块,我让它在客户端运行良好,但在服务器端渲染中出现问题。

以此为例,并使其更简单,这是我的演示代码:

webpack.config.dll.js

webpack.config.js

其他js代码和html代码是

如果我在浏览器中打开 index.html,它运行良好并在控制台中输出“a”。但如果我执行node dist/output.js,它会得到错误:

所以这意味着我的代码中不能要求 output.js。不幸的是,当我尝试在服务器中渲染时,我需要这样做,就像这个样板一样

我认为问题在于模块 a 已经被 webpack 处理了两次

那么有人遇到过这个问题吗?你是怎么解决的,希望你的回答,谢谢

0 投票
2 回答
171 浏览

javascript - Webpack DllPlugin 中是否有任何“publicPath”选项或类似选项?

我正在使用使用出色的DllPlugin的 mxstbr/react-boilerplate,但由于应用程序由 nginx 下提供,因此在尝试从根 url 获取文件时失败并出现 404(它命中而不是)。/adminreactBoilerplateDeps.dll.jshttp://localhost/reactBoilerplateDeps.dll.jshttp://localhost/admin/reactBoilerplateDeps.dll.js

是否有任何与 Webpack 在 DllPlugin 上的publicPath选项类似的概念,或者以任何方式告诉 DllPlugin 在路径前缀下使用?

0 投票
1 回答
3867 浏览

reactjs - 如何正确设置 webpack DLLPlugin 的上下文

我有一个项目,我的代码是 app 目录。/app 和 /node_modules 都在同一个目录中。

在我的 webpack 配置中,上下文和根解析都设置为 app 目录。

在我的 .jsx 文件中,无论 /app 中的哪个文件夹,我都可以使用导入任何 node_module

从“模块名称”导入{项目}

现在我为 dll 创建了一个新的 webpack 文件。其 DLLPlugin 中的上下文再次设置为 app 目录。当我将 dll 导入到项目的 webpack 中时,我再次使用 app 的路径作为 DllReferencePlugin 中的上下文。

我看不出我在哪里出错了,但是 app.js 仍然包含所有 DLL 的代码。我确信问题是不正确的上下文,但不知道从哪里开始修复它。

我似乎无法从文档中弄清楚,因为它并没有真正说明我需要做什么。

我的 webpack 文件如下(都位于 web/webpack/web 目录中)。

0 投票
1 回答
488 浏览

javascript - 使用 Webpack 的 DllPlugin 创建共享库

我想创建一个包含所有很少更改的依赖项的核心 NPM 包,例如 Angular。由于不同的项目会使用这个 NPM 包,而 Webpack 是首选的打包和构建工具,我认为 Webpack 的 DLL 插件会是一个不错的选择。

但不知何故,消费者包无法解析使用 DLL 插件创建的库包的内容。我在这里创建了一个最小的示例https://github.com/matoilic/webpack-dll-example。核心模块只包含 Angular,然后消费者模块应该能够从那里使用 Angular。但是消费者包的构建失败并出现错误,找不到“角度”。

Module not found: Error: Can't resolve 'angular' in '.../packages/poc-module/src/application'

有谁知道问题可能是什么?

0 投票
1 回答
565 浏览

webpack - 在生产中使用 webpack DllPlugin 是否安全?

有很多文章指出使用 DllPlugin 来减少构建时间。这可以在生产中使用吗,因为 webpack 存在供应商块内容哈希不一致的开放问题?我打算使用 DllPlugin 来解决这个问题,以便利用浏览器缓存。

0 投票
1 回答
1560 浏览

webpack - Webpack DllReferencePlugin 不工作

我的一个项目中的DllReferencePlugin有问题(我使用的是Webpack 1.13.2)。特别是,我有 3 对由DllPlugin生成的清单和包文件,在我的主包的插件部分中,我有 3 个DllReferencePlugin部分:

当我尝试运行它时,我收到以下错误:

/node_modules/webpack/lib/DelegatedModuleFactoryPlugin.js:43 if(request && request in this.options.content) { ^

TypeError:无法使用“in”运算符在未定义中搜索“./src/main.js”

相同的配置对我的其他项目很有效,所以我认为这个错误与路径解析有关。我已经尝试了上下文和清单路径的相对路径,但它也不起作用。

0 投票
1 回答
822 浏览

webpack - Dll 插件如何与 Webpack2 一起工作?

我正在将我们的应用程序更新到 webpack2,并且使用 webpack1,我们使用了 Dll 插件,但我不确定 webpack2 是否仍然需要该插件,或者是否需要进行任何更改。为了澄清,我们在 webpack-vendor 配置文件中定义了 DllPlugin,并在主 webpack 配置文件中定义了 DllReferencePlugin。

0 投票
0 回答
157 浏览

javascript - Hot Module Replacement 找不到 dll 引用

我在我们的项目中使用 DllPlugin 和 DllReferencePlugin,第一次构建时一切正常。这意味着 DLL 运行良好。但是说到HMR,生成的hot-update.js里面填的是:

在控制台中,它说:[HMR] Cannot check for update (Full reload needed)

我正在使用 webpack 3.4.1,一个带有 webpackHotMiddleware@2.15.0 的 webpack 编译器,有人在同时使用 HMR 和 DLL 时遇到问题吗?