首页 文章

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

提问于
浏览
22

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

无法确定@ angular / compiler-cli和typescript的版本 . 最常见的原因是npm安装损坏 . 请确保你的package.json在devDependencies中包含@ angular / compiler-cli和typescript,然后删除node_modules和package-lock.json(如果你有的话)并再次运行npm install .

9 回答

  • 14

    首先,为防止,更新角度

    npm install -g @angular/cli
    

    其次,运行“npm install”,你必须安装dev依赖项

    npm install --dev
    

    验证依赖关系是没有错误的

    ng --version
    
  • 2

    你能检查一下你的依赖关系中的“@ angular / compiler”是否与angular / cli版本兼容 .

    例如 :

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

    兼容:

    "@angular/compiler": "4.4.6",
    
  • 1

    请运行命令

    npm --production=false install
    

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

  • 3

    By default, npm install will install all modules listed as dependencies. 使用--production标志,npm不会安装devDependencies中列出的模块 . 要么我们可以去

    First Way

    editing the dependency part in package.json 添加相关版本

    "dependencies": {
        /*existing part */
    
         "@angular/cli": "1.5.2",
        "@angular/compiler-cli": "^5.0.0",
        "typescript": "^2.4.2"
        }
    

    Second Way

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

    或者你可以运行 NODE_ENV=development npm install

    了解更多详情click to know more

  • 0

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

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

    npm install --dev
    
  • 0

    通用的方法来逃避这个问题

    • 创建一个新项目

    新的角种子

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

    enter image description here

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

    rm -fr node_modules npm install

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

  • 0

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

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

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

    2.运行命令 .

    npm install --only=dev
    
  • 2

    实际上真正的问题是npm .

    如果将其下载为 --legacy-bundling=true (Which is by default) ,那么您将遇到此问题 . 如果您看到node_modules文件夹,则所有相关模块都将嵌套 .

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

    npm install --legacy-bundling=false
    

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

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

    npm set --legacy-bundling=false
    

相关问题