@ angular / compiler-cli和typescript的版本无法确定

时间:2017-11-08 17:05:50

标签: angular-cli

我已经安装了Angular / cli然后尝试运行命令ng serve然后下面的错误就是抛出。我已经尝试了很多东西,比如卸载angular / cli,npm cache clean等等

  

@ angular / compiler-cli和typescript的版本不可能   决心。最常见的原因是npm安装损坏。

     

请确保您的package.json包含@ angular / compiler-cli   和devDependencies中的typescript,然后删除node_modules和   package-lock.json(如果你有的话)并再次运行npm install。

11 个答案:

答案 0 :(得分:15)

这可能是一个不隐式运行devDependencies的问题。

尝试使用以下命令隐式运行它们。

npm install --dev

答案 1 :(得分:3)

逃避此问题的一般方法

  1. 创建新项目

    ng new angular-seed

  2. 将package.json中的所有默认依赖项和dev-dependenices复制到当前正在使用的项目中(angular,typescript等等)

  3. enter image description here

    1. 然后删除node_modules并运行当前项目的install npm packages,或者用于重新生成的任何方法

      rm -fr node_modules npm install

    2. 注意:如果这不能为您提供最新版本,那么您可能在漫游数据中安装了全局工具 (在窗口中浏览浏览器类型%appdata%,并导航到npm以观察)

答案 2 :(得分:2)

默认情况下,npm install将安装列为依赖项的所有模块。使用--production标志,npm将不会安装devDependencies中列出的模块。 或 我们可以去

第一种方式

编辑 依赖部分在package.json 中添加相关版本

    "dependencies": {
    /*existing part */

     "@angular/cli": "1.5.2",
    "@angular/compiler-cli": "^5.0.0",
    "typescript": "^2.4.2"
    }

第二种方式

要安装dev依赖项, npm --production = false install 即使使用NODE_ENV = production也能正常工作。

或者您可以运行 NODE_ENV =开发npm install

了解更多详情 click to know more

答案 3 :(得分:2)

在部署的情况下,最好添加preinstall脚本来解决依赖关系中的这些差距:

"preinstall": "npm install @angular/cli @angular/compiler-cli typescript"

答案 4 :(得分:2)

1。在项目文件夹中打开命令提示符。

2。运行命令。

 npm install --only=dev

答案 5 :(得分:2)

首先,为防止起见,请更新角度

npm install -g @angular/cli

第二,也是运行“ npm install”,必须安装开发依赖项

npm install --dev

验证依赖项没有错误

ng --version

答案 6 :(得分:0)

你能检查一下你的" @ angular / compiler"在您的依赖项中与angular / cli版本兼容。

例如:

  "devDependencies": {
    "@angular/cli": "1.4.8",
    "@angular/compiler-cli": "4.4.6",

兼容:

"@angular/compiler": "4.4.6",

答案 7 :(得分:0)

请运行命令

  }); // end of socket.on query function
}); // end of io.on

在您的终端中。 另请注意,执行此操作时,您应该在项目文件夹中。

答案 8 :(得分:0)

实际上真正的问题是npm。

如果以--legacy-bundling=true (默认情况下)下载,那么您将遇到此问题。如果您看到node_modules文件夹,则所有相关模块都将嵌套。

运行npm install命令时,应设置--legacy-bundling=false

npm install --legacy-bundling=false

现在,如果您看到node_modules文件夹,则不会嵌套任何模块。一切都会奏效。

您可以使用以下命令设置npm默认行为,然后您不必每次都设置。

npm set --legacy-bundling=false

答案 9 :(得分:0)

当我在Jenkins上安装npm依赖项时遇到了这个问题。我在devDependencies中有@ angular / compiler-cli,在依赖项中有@script,在环境中有clFinish(CommandQueue);

我尝试了NODE_ENV=production,它对我有用。

有关更多详细信息,请参见:https://github.com/angular/angular-cli/issues/8407

答案 10 :(得分:0)

  

还要检查这些依赖性package.json

...
"@angular/cli": "x.x.x",
"@angular/compiler": "^y.y.y",
"@angular/compiler-cli": "^z.z.z",
"typescript": "^t.t.t"
...

希望这对您有帮助...