【问题标题】:updating angular-cli 1.0.0-beta 28.3 to @angular/cli@latest failed将 angular-cli 1.0.0-beta 28.3 更新为 @angular/cli@latest 失败
【发布时间】:2017-09-17 12:48:54
【问题描述】:

我在更新 angular/cli 时遇到问题 - 甚至降级也失败了。

我有一个运行良好的 angular2 应用程序,我今天更新到 angular 4.4.1。 当我在 angular4 下为 --prod--aot 构建应用程序时,一切正常。

angular-cli: 1.0.0-beta.28.3
node: 6.9.5
os: win32 x64
@angular/animations: 4.4.1
@angular/common: 4.4.1
@angular/compiler: 4.4.1
@angular/compiler-cli: 4.4.1
@angular/core: 4.4.1
@angular/forms: 4.4.1
@angular/http: 4.4.1
@angular/platform-browser: 4.4.1
@angular/platform-browser-dynamic: 4.4.1
@angular/platform-server: 4.4.1
@angular/router: 4.4.1

现在我想更新我的 angular-cli 1.0.0-beta.82.3 到最新版本的 @angular/cli,因为我当前在 @angular 之外的版本已被弃用。

npm uninstall -g angular-clinpm install --save-dev@angular/cli@latest 之后,我使用此警告中有关webpack 以及node-libs-browserfile-loader 的兼容版本的信息解决了很多警告。

但是因为这个错误又失败了:

Field 'browser' doesn't contain a valid alias configuration
[...]
@ ./src/app/main/main.component.css 6:12782-12818
@ ./src/app/main/main.component.ts
@ ./src/app/app.module.ts
@ ./src/main.ts
@ multi webpack-dev-server/client?http://localhost:4200 ./src/main.ts

包管理器似乎在 css 中搜索了我所有的 jpeg。在这个 css 的组件下(在文件夹 assets 中)而不是在文件夹 src(资产)下。 现在我再次将 cli 的版本降级为angular-cli: 1.0.0-beta.28.3,并在出现新警告时安装了 webpack 版本 2.2.0。

但是还有一个新的错误:

ERROR in ng:///C:/Daten/example/project/src/app/blog-entry/blog-entry.component.html (27,36): Property 'blog_text' does not exist on type 'Blogs'.

在当前版本集下:

angular-cli: 1.0.0-beta.28.3
node: 6.9.5
os: win32 x64
@angular/animations: 4.4.1
@angular/common: 4.4.1
@angular/compiler: 4.4.1
@angular/compiler-cli: 4.4.1
@angular/core: 4.4.1
@angular/forms: 4.4.1
@angular/http: 4.4.1
@angular/platform-browser: 4.4.1
@angular/platform-browser-dynamic: 4.4.1
@angular/platform-server: 4.4.1
@angular/router: 4.4.1
@angular/cli: 1.4.2

在这个设置中,没有ng build --prod --aot 一切正常,这就是我的问题。 我想用npm uninstall --save @angular/cli 删除@angular/cli。

但它与上面相同的错误加上ng version 的错误: 找不到模块'C:\Daten\example\project\node_modules\@angular\cli\package.json'

我希望有人给我一个解决这个问题的方法,因为我无法用当前的问题构建我的应用程序。

非常感谢您!

【问题讨论】:

  • 您在更新 CLI 时是否关注these exact steps?您最好使用最新的 CLI 构建一个新项目,然后将您的代码复制到该项目中。它可以为您节省大量时间,而不是处理此故障排除。
  • 完全同意构建新项目并进行比较。坦率地说,可能没有人确切知道您需要在项目中做什么才能更新到 Angular cli :-)
  • 非常感谢各位的回答,我觉得还是要走这条路,因为配置还是有错误

标签: angular version angular-cli updates


【解决方案1】:

我不依赖更新文档。这就是过去对我有用的方法:

npm uninstall angular-cli -g
npm cache clear
npm install @angular/cli -g

ng new myProjectName

将生成项目中的 src 目录的内容替换为现有项目中的内容。

将您的资产目录(如果有)复制到新生成的项目中

如果您使用第三方库,请更新新生成的 .angular-cli.json 中的样式和脚本属性。

如果您在现有项目中手动安装了其他包,请在新生成的项目中更新 package.json 并运行 npm install。

【讨论】:

  • 非常感谢您的回答。我已经做了任何步骤,但仍然存在错误:npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@^1.0.0 (node_modules\chokidar\node_modules\fsevents): npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.1。 2:想要 {"os":"darwin","arch":"any"}(当前:{"os":"win32","arch":"x64"})
  • 很可能这不是一个错误——它只是找不到一些可选的依赖项。它告诉您 fsevents 是为 Mac OS 创建的,但您在 windows 上运行。您也可以尝试安装最新版本的 Node.js,看看这个警告是否会消失。
  • 再次感谢您的支持!有很多红色错误指的是(相对路径:.src/app/main/assets)...main这里是一个组件,但是asset dir直接在src下-->这个消息是给出的::字段“浏览器”不包含有效的别名配置/使用描述文件:.../package.json
  • assets 应该在 src 下
  • 是的,没错。资产文件夹位于 src 文件夹下。但错误意味着编译器查看受影响(css)组件文件夹下的资产文件夹。您是否知道哪个配置可以将编译器路由到如此错误的位置,因为文件夹结构和 css 条目是正确的,例如背景:url("./assets/img/example.jpg") - 非常感谢您的支持,这应该是ng serve as ng build --prod --aot成功运行的最后一步
猜你喜欢
  • 2017-11-15
  • 2017-08-26
  • 2017-03-19
  • 2017-02-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-02
  • 2019-04-30
相关资源
最近更新 更多