Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/417.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何重用Web包供应商包_Javascript_Angularjs_Webpack_Code Splitting - Fatal编程技术网

Javascript 如何重用Web包供应商包

Javascript 如何重用Web包供应商包,javascript,angularjs,webpack,code-splitting,Javascript,Angularjs,Webpack,Code Splitting,我假设我可以实现我试图用webpack做的事情,但仍然无法理解。下面是用例 我有两个Angular应用程序(将在同一个浏览器窗口中加载),它们将重用完全相同的供应商包。目前,webpack在每个应用程序中生成两个文件app.[app\u module\u name].js和vendor.js。因此理论上,我应该能够在html页面中只包含一个vendor.js文件,然后加载几个应用程序模块。但是,这不起作用,因为供应商中lib的网页包内部引用彼此不同 以下是我目前的配置。如果有人能帮我,那就太好了

我假设我可以实现我试图用webpack做的事情,但仍然无法理解。下面是用例

我有两个Angular应用程序(将在同一个浏览器窗口中加载),它们将重用完全相同的供应商包。目前,webpack在每个应用程序中生成两个文件app.[app\u module\u name].js和vendor.js。因此理论上,我应该能够在html页面中只包含一个vendor.js文件,然后加载几个应用程序模块。但是,这不起作用,因为供应商中lib的网页包内部引用彼此不同

以下是我目前的配置。如果有人能帮我,那就太好了

entry: {
      bootstrap: './src/app/init/bootstrap.js',
      tradingApp: './src/app/app.js'
    },
    output: {
      filename: '[name].bundle.js',
      publicPath: '/',
      path: path.join(projectRoot, 'dist')
    },
plugins:[
      new webpack.optimize.CommonsChunkPlugin({
        name: 'vendor',
        minChunks: function (module) {
          return module.resource && module.resource.indexOf(path.join(projectRoot, 'src')) === -1
        }
      }),
]

这就是为什么要一起构建应用程序,以便它们可以重用“供应商”块。@estus每个应用程序都在不同的时间线中构建。例如,应用程序A将每月部署到生产中,应用程序B将每周部署到生产中。然而,不管时间表如何,供应商包始终是相同的,这取决于您如何管理您的项目,但是您可以每次从其“发布”分支构建一个包(它仍然必须每周部署一次)。我猜替代方案是修复模块ID(使用or),因此在构建时只会更改B。我不认为有办法“在html页面中只包含一个vendor.js文件”,除非将vendor模块导出到globals,否则Webpack不会这样工作。@estus谢谢你的建议。我已经更改了构建管道,它构建了所有模块,不管是否有更改。然后,构建过程验证每个文件的校验和,如果有更改,则仅将文件部署到Production是否可以使用Angular CLI在Angular的最新版本中重用捆绑包,如提到的vendor.js?