3

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 });
});

私はcommonsChunkPluginを持っていて、すべてがうまくいきました。

webpack 4 では、splitChunks オプションを使用して angularjs を 5 回インポートしないようにしています。

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

それは正しく機能しています。私のcommon.jsファイルにのみangularjsコードをロードしました。しかし残念なことに、コードは 2 回インスタンス化されるため、アプリは常に警告をログに記録します。

警告: AngularJS を複数回ロードしようとしました。

チャンクはHtmlWebpackPluginhtml を介してロードされます。

警告を削除する方法はありますか?

4

1 に答える 1

5

githubの問題の深みで解決策を見つけました:

ベンダー ファイルはエントリ ポイントであってはなりませんが、エントリ ポイントはファイルのリストである必要があります。

...
 entry: {
    main: ['./vendor.js', './main.js']
},
...
于 2018-03-14T09:04:34.333 に答える