问题标签 [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.
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
尚未完成, 意义清单尚不存在。
webpack - 通过范围模式选择 webpack dll 包
在 webpack 示例中,特别是
- https://github.com/webpack/webpack/tree/master/examples/dll
- https://github.com/webpack/webpack/tree/master/examples/dll-user
我们可以创建一个依赖于已经预先捆绑的库的捆绑包。手头的例子可以正常工作。也就是说,我们首先导航到examples/dll
并运行node build.js
以创建库。然后我们导航到examples/dll-user
并运行node build.js
以创建引用先前捆绑的库的最终捆绑包。
我的问题如下。假设examples/dll
我们将配置文件修改为如下所示:
也就是我们添加module
到beta
dll中。现在我们必须拥有module
. 让我们编译 dll 并继续dll-user
举例。在这里,我们想做的是制作一个捆绑包,我们可以从中选择将提供的库module
。让我们尝试在示例中再添加一行
在这种情况下,我希望能够使用module
驻留在beta
dll 中的那个。不幸的是,我并不幸运。这是我尝试后得到的输出:
有没有办法指定捆绑包应该使用的库?我认为scope
选项DllReferencePlugin
可以解决问题,但似乎并非如此。
编辑:请注意,添加./a
到 beta dll,然后require('beta/a')
在示例中使用。似乎 webpack 很难弄清楚 node_modules。
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 处理了两次
那么有人遇到过这个问题吗?你是怎么解决的,希望你的回答,谢谢
javascript - Webpack DllPlugin 中是否有任何“publicPath”选项或类似选项?
我正在使用使用出色的DllPlugin的 mxstbr/react-boilerplate,但由于应用程序由 nginx 下提供,因此在尝试从根 url 获取文件时失败并出现 404(它命中而不是)。/admin
reactBoilerplateDeps.dll.js
http://localhost/reactBoilerplateDeps.dll.js
http://localhost/admin/reactBoilerplateDeps.dll.js
是否有任何与 Webpack 在 DllPlugin 上的publicPath选项类似的概念,或者以任何方式告诉 DllPlugin 在路径前缀下使用?
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 目录中)。
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'
有谁知道问题可能是什么?
webpack - 在生产中使用 webpack DllPlugin 是否安全?
有很多文章指出使用 DllPlugin 来减少构建时间。这可以在生产中使用吗,因为 webpack 存在供应商块内容哈希不一致的开放问题?我打算使用 DllPlugin 来解决这个问题,以便利用浏览器缓存。
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”
相同的配置对我的其他项目很有效,所以我认为这个错误与路径解析有关。我已经尝试了上下文和清单路径的相对路径,但它也不起作用。
webpack - Dll 插件如何与 Webpack2 一起工作?
我正在将我们的应用程序更新到 webpack2,并且使用 webpack1,我们使用了 Dll 插件,但我不确定 webpack2 是否仍然需要该插件,或者是否需要进行任何更改。为了澄清,我们在 webpack-vendor 配置文件中定义了 DllPlugin,并在主 webpack 配置文件中定义了 DllReferencePlugin。
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 时遇到问题吗?