我正在尝试生成第二个依赖于另一个bundle的webpack包.每个页面都需要bundle-one,但只有一些页面需要bundle-two.
例如,假设我有以下入口点脚本(这些是简单的示例,只是使用它们来解决问题):
维管束one.js
import $ from 'jquery';
$(document).data('key', 'value');
Run Code Online (Sandbox Code Playgroud)
维管束two.js
import $ from 'jquery';
const value = $(document).data('key');
Run Code Online (Sandbox Code Playgroud)
我知道我可以使用CommonsChunkPlugin生成包含WebPack加载器和jQuery的commons.js文件,但这需要在每个页面上加载commons.js和bundle-one.js,即使我不需要加载bundle -two.js.
所以,基本上:有没有办法将bundle-one.js构建为我所有页面的"主"JavaScript包,然后使用bundle-two.js设置从bundle-one.js加载jQuery?
我首先要说的是,我一直试图寻找答案,但没有找到任何可行的,甚至暗示它是可能的.
我最近从RequireJS配置转到使用Webpack进行汇总.在我们的Groovy应用程序的某些地方,我们在GSP中有一个脚本标记,它将通过RequireJS访问模块,如下所示:
<html>
<body>
...
<script>
require([
'jquery',
'customModule'
], function($, customModule){
// do something with jquery
// ...
// do something with customModule
});
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
我需要能够使用Webpack做同等事情,原因有几个,最重要的是我们能够从管理端注入Javascript来修复任何生产错误,而无需推送维护版本.
期待我能够做这样的事情:
<html>
<body>
...
<script>
webpack_require([
'jquery',
'customModule'
], function($, customModule){
// do something with jquery
// ...
// do something with customModule
});
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
如果您知道如何从外部访问Webpack捆绑包请分享!谢谢
我尝试使用webpack到我的应用程序,但它每次构建我的应用程序60-100秒.如何禁用重建文件node_modules/*和/ bower_components/*或为单独的块(每个模块或共享)构建它们.
这是配置的一部分:
{
test: /\.js$/,
exclude: /(node_modules|bower_components)/,
loaders: ['ng-annotate', 'babel-loader']
},
Run Code Online (Sandbox Code Playgroud)
和
resolve: {
moduleDirectories: ['node_modules', 'bower_components']
},
Run Code Online (Sandbox Code Playgroud)
如何通过每次禁用库的重建来提高性能?