更新到Angular 5时,我遇到了错误:关键依赖项:依赖项的请求是一个表达式。

6

之前我的应用程序是使用Angular 4.4.6开发的。我按照指南https://angular-update-guide.firebaseapp.com/来升级到Angular 5。我使用了以下代码:

npm install @angular/animations@'^5.0.0' @angular/common@'^5.0.0' @angular/compiler@'^5.0.0' @angular/compiler-cli@'^5.0.0' @angular/core@'^5.0.0' @angular/forms@'^5.0.0' @angular/http@'^5.0.0' @angular/platform-browser@'^5.0.0' @angular/platform-browser-dynamic@'^5.0.0' @angular/platform-server@'^5.0.0' @angular/router@'^5.0.0' typescript@2.4.2 rxjs@'^5.5.2'

但是它没有起作用,会给我一个错误 rxjs没有找到有效的目标。因此,我只是在我的package.json中更改了版本并运行了npm install,这样就可以了。但是当我运行npm start时,出现了错误。

WARNING in ./~/@angular/core/esm5/core.js
6456:15-102 Critical dependency: the request of a dependency is an expression

我删除了node_modules文件夹并重新运行npm install,但在运行npm start时仍然出现相同的错误。

截图:Screenshot


你并没有遇到错误,只是收到了警告。应用程序仍然可以正常工作。 - R. Richards
那么我该如何修复它? - Christian
没有需要修复的问题。继续前进。 - R. Richards
我也遇到了同样的问题。即使只是一个警告,我也想知道发生了什么... - Mr. Muh
@Mr.Muh,我昨天修复了它并添加了一个答案。希望能有所帮助! - Christian
谢谢你的回答。我不知道为什么,但今天当我继续工作时,错误就消失了... - Mr. Muh
1个回答

14

我通过更改 webpack.common.js 的方式成功解决了它:

new webpack.ContextReplacementPlugin(
    /(.+)?angular(\\|\/)core(.+)?/,
    root('./src'),
    {}
)

我遇到了同样的问题,但是我没有 webpack.common.js 文件。我应该去哪里找? - Francesco Borzi
2
此代码将破坏使用@ngtools/webpack构建的AOT构建中子路由的惰性加载。请确保将ContextReplacementPlugin移动到webpack.dev.js中。(截至Angular: 5.0.2,@ngtools/webpack: 1.8.3和Webpack: 3.4.1) - Stevethemacguy
helpers.root() 应该是你定义的一个函数。请参考 https://angular.io/guide/webpack。 - AJ Richardson

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接