Angular2 CLI错误“@ angular / compiler-cli”包未正确安装

时间:2017-03-21 11:23:24

标签: angular angular-cli

我正在开展Angular 2项目。现在尝试使用以下

在当前项目中安装Angular CLI
npm install --save-dev @angular/cli@latest
npm install

运行问题ng serve我收到错误

The "@angular/compiler-cli" package was not properly installed.
Error: The "@angular/compiler-cli" package was not properly installed.
    at Object.<anonymous> (/myng2project/node_modules/@ngtools/webpack/src/index.js:14:11)
    at Module._compile (module.js:570:32)
    at Object.Module._extensions..js (module.js:579:10)
    at Module.load (module.js:487:32)
    at tryModuleLoad (module.js:446:12)
    at Function.Module._load (module.js:438:3)
    at Module.require (module.js:497:17)
    at require (internal/module.js:20:19)
    at Object.<anonymous> (/myng2project/node_modules/@angular/cli/tasks/eject.js:10:19)
    at Module._compile (module.js:570:32)
    at Object.Module._extensions..js (module.js:579:10)
    at Module.load (module.js:487:32)
    at tryModuleLoad (module.js:446:12)
    at Function.Module._load (module.js:438:3)
    at Module.require (module.js:497:17)
    at require (internal/module.js:20:19)

22 个答案:

答案 0 :(得分:55)

我遇到了同样的问题。我按照&#34;更新Angular CLI&#34; npm @angular/cli page中的流程,即:

1。卸载并清理(全局)

npm install -g @angular/cli@latest
npm install
ng serve

2。重新安装并播放(全局)

document.write("<br>");
vTicketQty = prompt("Enter No. of Tickets");
calcPrice();
vTicketQty = parseInt(vTicketQty);
document.write("<br>");

这对我有用。

答案 1 :(得分:20)

我已经尝试了这些答案中的所有内容,唯一对我有用的是:

  

第1步:npm install -g @ angular / cli @ latest
  第2步:添加新的项目名称(忽略项目是否已创建)
  第3步:cd项目名称(忽略项目是否已创建)
  第4步:npm install @ angular / cli --save-dev
  第5步:npm install @ angular / compiler-cli --save-dev
  第6步:ng服务

在两个不同的环境中测试这些步骤

在项目文件夹中,键入“npm install”并等待安装完成,此修复程序对我来说很好。

答案 2 :(得分:18)

版本

存在问题
"@angular/cli": "1.0.0-rc.4"

尝试安装较旧的

"@angular/cli": "1.0.0-rc.2"

答案 3 :(得分:10)

如果升级到Angular 4并且不将Typescript更新为2.1.0,也会发生同样的错误。

答案 4 :(得分:7)

这个绝对糟透了。为了让我解决它,我必须做一些事情......

为了解决@angular/compiler-cli was not installed correctly错误,我不得不采用@ Ruzenhack的解决方案,即删除全局和本地@angular/cli包:

rm -rf node_modules dist
npm uninstall -g @angular/cli
npm cache clean

但是进一步采取他的建议安装@angular/cli@latest给我留下了同样的问题,这导致我@ SergeyV建议我降级到cli的旧版本。就个人而言,我有另一个 @angular/cli@1.0.0-rc.1合作的项目,所以我决定使用它并在全局和package.json中安装它。

成功。

<强> BUT ...

然后又给了我一个错误.... Cannot read property 'Private' of undefined

该死。

所以我接受了这个建议from the angular-cli github issues,这是为了升级我的打字稿。因此,在^2.0.0中将我的打字稿版本投放到package.json,我接受了熟悉且无挫折的绿色ng serve输出。最后。

我希望这可以帮助别人。

答案 5 :(得分:4)

我遇到了同样的问题。重新启动我的电脑,因为Windows ..当我意识到我还没有在项目上运行npm install时仍然看到相同的错误消息,所以我这样做了,它解决了问题。

Global angular CLI - 版本1.0.0-rc.4

本地依赖:

"@angular/common": "^2.4.0",
"@angular/compiler": "^2.4.0",
"@angular/core": "^2.4.0",

答案 6 :(得分:4)

我带了10个小时的调查来找到这个:

  

npm start

让您比较调查方法的长篇故事:

多次尝试失败后,我重新安装了节点和npm,现在我有了:

c:\> ng -v
@angular/cli: 1.3.0
node: 6.9.0
os: win32 ia32

一切都适用于新项目

ng new my-new-project

但我有一个展示

的妥协项目
Unable to find "@angular/cli" in devDependencies.

Please take the following steps to avoid issues:
"npm install --save-dev @angular/cli@latest"

The "@angular/compiler-cli" package was not properly installed. Error: Error: Cannot find module '@angular/compiler-cli'
Error: The "@angular/compiler-cli" package was not properly installed. Error: Error: Cannot find module '@angular/compiler-cli'
at Object.<anonymous> (C:\Users\profimedica\AppData\Roaming\npm\node_modules\@angular\cli\node_modules\@ngtools\webpack\src\index.js:14:11)

因为我已经全局安装了@ angular / cli,所以我只需要将它添加到package.json 文件中,例如使用来自新创建的项目的相同文件,该文件可以正常工作: / p>

{
  "dependencies": {
    "body-parser": "^1.17.1",
    "express": "^4.15.2",
    "http": "0.0.0"
  },
  "devDependencies": {
    "@angular/cli": "1.3.0",
    "@angular/compiler-cli": "^4.2.4"
  }
}

由于@ angular / compiler-cli模块未安装为本地模块,因此抛出第二个错误:

// Check that Angular is available.
try {
    version = require('@angular/compiler-cli').VERSION;
}
catch (e) {
    throw new Error('The "@angular/compiler-cli" package was not properly installed. Error: ' + e);
}

我检查了node_modules文件夹,发现文件夹。\ node_modules \ @angular \ compiler-cli,。\ node_modules \ @angular \ compiler和。\ node_modules \ @angular \ core丢失了。

我按要求安装:

npm install @angular/compiler-cli
npm install @angular/compiler
npm install @angular/core

我在文件中添加了一个日志,安装后看到检测到的版本:。\ node_modules \ @ngtools \ webpack \ src \ index.js

console.log(require('@angular/compiler-cli').VERSION);
Version { full: '4.3.5' }

现在我收到一个新错误:

Cannot read property 'config' of null
TypeError: Cannot read property 'config' of null
at Class.run (C:\PRO\htdocs\my\api\gen\projects\generated\testknowledge\node_modules\@angular\cli\tasks\serve.js:23:63)

为了调查这个新问题,我在。\ node_modules \ @angular \ cli \ models \ config \ config.js

中添加了一个日志行。
class CliConfig {
    constructor(_configPath, schema, configJson, fallbacks = []) {
        this._configPath = _configPath;     
        console.log(_configPath);
        this._config = new (json_schema_1.SchemaClassFactory(schema))(configJson, ...fallbacks);
    }

我得到了意想不到的价值:

C:\Users\profimedica\.angular-cli.json

显然,这个文件不在我的主目录中,而是在项目的根目录中:

.\angular-cli.json 

经过3个小时的调查并尝试创建丢失的文件后,我不得不重新考虑这种方法。

我删除了本地@angular模块并全局重新安装:

npm install --save-dev @angular/cli@latest
npm install --save-dev @angular/compiler-cli@latest
npm install --save-dev @angular/compiler@latest
npm install --save-dev @angular/core@latest

我发现我的项目有自定义架构,我必须运行    npm start

答案 7 :(得分:2)

已解决!!!

这个错误与它声称的 @ angular / compiler-cli 没有直接关系,而是与 @ angular / cli 直接相关,这是一个误导性的部分硬编码和部分不完整的报告错误。当无法确定@ angular / compiler-cli的版本时,它确实被抛出。但是这个模块很好。

由于我是Angular的新手,从.NET迁移,我从一开始就没有想到这么多问题。所以我开始研究这个。

当webpack无法确定文件C中的@ angular / compiler-cli的版本时出现错误:\ Users \ profimedica \ AppData \ Roaming \ npm \ node_modules \ @angular \ cli \ node_modules \ @ngtools \ webpack \ src \ index.js:

// Check that Angular is available.    
try {
    version = require('@angular/compiler-cli').VERSION;
}
catch (e) {
    throw new Error('The "@angular/compiler-cli" package was not properly installed. Error: ' + e);
}

您可以在此处查看您的模块:

ng -v
@angular/cli: error
@angular/core: 4.3.6
@angular/compiler-cli: 4.3.6
node: 6.9.0
os: win32 ia32

我的package.json包含devDependencies&#34; webpack&#34;:&#34; ^ 3.5.5&#34;但是没有本地node_modules \ webpack。我的全局模块中有webpack模块:

C:\用户\ profimedica \应用程序数据\漫游\ NPM \ node_modules \ @angular \ CLI \ node_modules \的WebPack

我的错误是:

&#34; @ angular / compiler-cli&#34;包没有正确安装。错误:

错误:找不到模块&#39; @ angular / compiler-cli&#39;

错误:&#34; @ angular / compiler-cli&#34;包没有正确安装。错误:

错误:无法找到模块&#39; @ angular / compiler-cli &#39;     在对象。

(C:\用户\ profimedica ** **应用程序数据\漫游\ NPM \ node_modules \ @angular \ CLI \ node_modules ** @ ngtools \的WebPack ** \ SRC \ index.js:14:8)     在Module._compile(module.js:570:32)

否认它使用全局包。 我尝试将其安装在localy:

  

npm install @ angular / cli @ 1.3.1

     

npm install @ ngtools / webpack @ 1.6.1

它将要求丢失包裹,如果有的话:

npm WARN @ ngtools / webpack @ 1.6.1需要peer-resolve @^3.1.0,但没有安装。

npm WARN @ ngtools / webpack @ 1.6.1需要webpack @^2.2.0 ||的同行^ 3.0.0但没有安装。

npm WARN ajv-keywords@2.1.0需要ajv @&gt; = 5.0.0的同行,但没有安装。

所以,我也必须添加它们。

npm install enhanced-resolve@^3.1.0
npm install webpack@^3.5.5
npm install ajv@5.2.2

现在,问题是没有使用本地模块。只有全球一个。错误是一样的。即使我安装了Angular Cli:

ng -v
    _                      _                 ____ _     ___
   / \   _ __   __ _ _   _| | __ _ _ __     / ___| |   |_ _|
  / △ \ | '_ \ / _` | | | | |/ _` | '__|   | |   | |    | |
 / ___ \| | | | (_| | |_| | | (_| | |      | |___| |___ | |
/_/   \_\_| |_|\__, |\__,_|_|\__,_|_|       \____|_____|___|
           |___/

现在我的应用程序运行良好:

PS C:\PRO\ANG\material\ag-grid\ag-grid-angular-seed\angular-cli> npm start
> ag-grid-cli@0.0.0 start C:\PRO\ANG\material\ag-grid\ag-grid-angular-vseed\angular-cli
> ng serve
** NG Live Development Server is listening on localhost:4200, open your browser on http://localhost:4200 **

答案 8 :(得分:2)

我已经尝试过这个问题中的所有修复。我也在https://github.com/angular/angular-cli#updating-angular-cli试了一下。结果相同。所以我挖掘了错误。

我查看了“node_modules/@ngtools/webpack/src/index.js:14:11”中的代码。这是我的项目失败的地方。该行为version = require('@angular/compiler-cli').VERSION;此行抛出异常并记录错误The "@angular/compiler-cli" package was not properly installed.

抛出错误的函数是require函数。因此@angular/compiler-cli模块不在当前版本中。我尝试过模块标识符@angular/compiler,但没有VERSION。 (即未定义)。

所以看起来这是角色团队必须解决的错误。

答案 9 :(得分:2)

将打字稿升级到最新版本 npm install -g typescript@latest 找到已安装包的版本 tsc -v

打开package.json并使用最新版本更改typescript版本并重新启动它。

答案 10 :(得分:1)

我在我的Mac上尝试了很多东西,直到我开始使用它:

> npm cache clean --force
> npm install
> ng serve

答案 11 :(得分:1)

对我来说,问题是我在使用cli创建了一个项目但在尝试提供之前没有更改到该目录

答案 12 :(得分:1)

我通过运行SLAIncident <- SLAIncident %>% mutate(month = format(SLAIncident$CreatedDateLocal, "%m"), year = format(SLAIncident$CreatedDateLocal, "%Y")) %>% group_by(year, month) %>% summarise(SLARespond = sum(SLAIncident$IsSlaRespondByViolated))

解决了这个问题

答案 13 :(得分:1)

在我运行

时安装angular-cli后,在新的角度4安装上遇到了同样的问题

ng serve

我得到了同样的错误。我提到repository uptodate link并将编译器,cli和core更改为4.0。它对我有用。

答案 14 :(得分:1)

我在Linux机器上创建新的全新安装

@ angular / cli:1.0.1 节点:6.10.2 os:linux x64

使用

创建新的角度2项目后

ng new angularhellword

项目已成功创建,但是当我执行命令

ng serve

给出了与上面相同的错误

  

未正确安装“@ angular / compiler-cli”软件包。

请采取以下步骤以避免问题:

"npm uninstall --save-dev angular-cli"

"npm install --save-dev @angular/cli@latest"

它适用于我,项目运行成功。

答案 15 :(得分:1)

您需要更新package.json。
必须改变依赖性“打字稿”才能奏效 最后工作的家属为angular-cli:
@角/ CLI: “1.0.0”,
@ angular / compiler-cli:“^ 4.0.0”,
打字稿:“~2.2.0”
我更改了这些参数并且已经工作了

答案 16 :(得分:1)

更新angular-cli之后我得到了同样的错误,我在项目目录中通过调用npm install -g angular-cli修复了它。在更新angular-cli.json之后,请更改

"environments": {
  "source": "environments/environment.ts",
  "dev": "environments/environment.ts",
  "prod": "environments/environment.prod.ts"
}

"environmentSource": "environments/environment.ts",
"environments": {
  "dev": "environments/environment.ts",
  "prod": "environments/environment.prod.ts"
}

答案 17 :(得分:1)

我认为你需要运行&#34; npm install @ angular / compiler-cli --save&#34;。

答案 18 :(得分:0)

问题标题中出现此错误是由于现有项目的副本并尝试运行ng服务。 我尝试了上面的所有内容,只需尝试新的YourApp,然后尝试下面的package.json - 专注于angular-compiler版本,在我的机器上解决错误。

{
  "name": "orderflow2",
  "version": "0.0.0",
  "license": "MIT",
  "scripts": {
    "ng": "ng",
    "start": "ng serve",
    "build": "ng build",
    "test": "ng test",
    "lint": "ng lint",
    "e2e": "ng e2e"
  },
  "private": true,
  "dependencies": {
    "@angular/animations": "^4.0.0",
    "@angular/common": "^4.0.0",
    "@angular/compiler": "^4.0.0",
    "@angular/core": "^4.0.0",
    "@angular/forms": "^4.0.0",
    "@angular/http": "^4.0.0",
    "@angular/platform-browser": "^4.0.0",
    "@angular/platform-browser-dynamic": "^4.0.0",
    "@angular/router": "^4.0.0",
    "core-js": "^2.4.1",
    "rxjs": "^5.1.0",
    "webpack": "^3.2.0",
    "zone.js": "^0.8.4"
  },
  "devDependencies": {
    ***"@angular/cli": "^1.2.0",
    "@angular/compiler-cli": "^4.0.0",***
    "@angular/language-service": "^4.0.0",
    "@types/jasmine": "~2.5.53",
    "@types/jasminewd2": "~2.0.2",
    "@types/node": "~6.0.60",
    "codelyzer": "~3.0.1",
    "jasmine-core": "~2.6.2",
    "jasmine-spec-reporter": "~4.1.0",
    "karma": "~1.7.0",
    "karma-chrome-launcher": "~2.1.1",
    "karma-cli": "~1.0.1",
    "karma-coverage-istanbul-reporter": "^1.2.1",
    "karma-jasmine": "~1.1.0",
    "karma-jasmine-html-reporter": "^0.2.2",
    "protractor": "~5.1.2",
    "ts-node": "~3.0.4",
    "tslint": "~5.3.2",
    "typescript": "~2.3.3"
  }
}

答案 19 :(得分:0)

我使用较旧的Angular 2应用程序遇到此问题,并通过执行以下操作解决了这个问题:

  1. 我创建了一个新的Angular 2项目&#34; ng服务DempApp&#34;
  2. 我制作了旧的package.json文件的备份副本。
  3. 然后我将旧的package.json文件与新文件进行了比较。我换了新的 &#34;依赖性&#34;和&#34; devDependencies&#34;来自新的package.json的块。
  4. 然后我编辑了旧的angular-cli.json文件并替换了#34;环境&#34;阻止我从新应用程序复制的以下内容:

    &#34; environmentSource&#34;:&#34; environments / environment.ts&#34;, &#34;环境&#34;:{   &#34; dev&#34;:&#34; environment / environment.ts&#34;,   &#34; prod&#34;:&#34; environments / environment.prod.ts&#34; }

答案 20 :(得分:0)

检查您的本地项目的'node_modules / @ angular / cli'不是指向全局'node_modules ...'的链接。删除本地文件夹(符号链接)并再次调用'npm install'。

在我的情况下,使用'--link-cli'参数调用'new new'是错误的。 在我看来,这个参数不会按预期工作,或者我不知道如何正确使用它。

答案 21 :(得分:-1)

使用 npm install -g @ angular / cli 命令安装cli。