AngularJs 多次加载

标签 angularjs typescript webpack-4

我在将我的 angularJs 应用程序升级到 Webpack4 时遇到问题。

这是我的设置:

vendor.ts

import "angular";
import "angular-i18n/de-de";
import "angular-route";

main.ts
import {MyAppModule} from "./my-app.app";

angular.element(document).ready(() => {
    angular.bootstrap(document.body, [MyAppModule.name], { strictDi: true });
});

使用 webpack 3。我有一个 commonsChunkPlugin,一切正常。

对于 webpack 4,我使用 splitChunks 选项不导入 angularjs 5 次:

webpack.config.ts
...
optimization: {
    splitChunks: {
        cacheGroups: {
            commons: {
                name: "commons",
                chunks: "initial",
                minChunks: 2
            }
        }
    }
}
...

这是正常工作。我只在我的 common.js 文件中加载了 angularjs 代码。但不幸的是代码被实例化了两次,所以应用程序总是记录警告:

WARNING: Tried to load AngularJS more than once.

block 是通过 html 中的 HtmlWebpackPlugin 加载的。

知道如何删除警告吗?

最佳答案

github issues: 的深处找到了解决方案|

供应商文件不应是入口点,但入口点应是文件列表:

...
 entry: {
    main: ['./vendor.js', './main.js']
},
...

关于AngularJs 多次加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49272493/

相关文章:

angularjs - 有没有一种好方法来管理在 $rootScope 上触发的所有事件,这样您就不会得到同名事件?

javascript - 带有 webpack 的 HTML 内联 javascript

reactjs - Create React App 生产构建成功但生成的代码有错误

typescript - 使用 TypeScript 表达 CSP Nonce

typescript - 当使用 AWS CDK 创建 cfn 模板和管道时,如何使用 CodePipeline 部署 CloudFormation 堆栈?

javascript - 如何让简洁的 webpack 插件正常工作

javascript - html5 数字类型只接受正整数

javascript - ng-pattern 正则表达式仅查找模式的一次出现

javascript - AngularJS 指令 : compile template and watch scope

javascript - 动态(匿名)函数中的 TypeScript 调用函数