重新安装angular-cli后,您必须位于angular-cli项目中才能使用build命令


117

我在全球安装了最新的angular-cli,并且我的项目正在成功构建。

在阅读针对另一个问题的建议解决方案时(https://github.com/angular/angular-cli/issues/917),我卸载了全局angular-cli并将其安装为dev-dependency。

另一个问题没有解决,所以我卸载了dev-dependency,然后再次在全局重新安装了angular-cli。现在,当我尝试执行ng build时,出现错误:

您必须在angular-cli项目中才能使用build命令

我的angular-cli版本没有更改。为什么我的项目没有被视为angular-cli项目?


就我而言,我必须@angular/cli从1.6.7 更新为1.6.8
JPNotADragon '18

Answers:


181

与John Pankowicz的回答相同,但就我而言,我不得不跑步

npm install -g @angular/cli@latest

匹配的版本。


6
事实证明,“ @ angular / cli”是“ angular-cli”的更新版本。后者在我的系统上全局安装,而前一个列在package.json中。我更换包装后,它开始工作了。
simonxy

对我来说,仅运行命令npm install -g @ angular / cli可以解决此问题。
DILIP KOSURI,

是的,它起作用了!
Naveed Aheer

这也为我工作。这对我来说具有匹配版本的项目很重要
Keenan Payne

我当时在WebAPI文件夹中,所以我不得不切换到Angular CLI文件夹:)
Varun Maggo

53

好,找到了。

package.json必须包含对angular-cli的依赖

当我卸载本地的angular-cli时,npm也删除了依赖项。


7
您能否更详细地说明有关依赖性的那一部分?
BJAA '17

卸载angular-cli作为dev依赖项,即[npm uninstall --save-dev angular-cli]从packages.json中删除了一个条目。“ devDependencies”:{“ @ angular / cli”:“ ^ 1.0.0”,“ ...“},因此您需要确保该条目在“ devDependencies”甚至“ dependencies”下都可用
jabu.hlong

那你做了什么?您究竟卸载了什么?-g或--save?
Janatbek Sharsheyev

51
npm uninstall -g angular-cli @angular/cli
npm cache clean
npm install -g @angular/cli

在Mac / Linux上使用sudo。


npm ERR!从npm @ 5开始,npm缓存会因损坏问题而自我修复,并且保证从缓存中提取的数据是有效的。如果要确保所有内容都一致,请改用“ npm cache verify”。
obeliksz

如果您遇到此问题:不能从...中找到模块“ @ angular-devkit / build-angular”。那么,它也可能会很有用:npm install --save-dev @ angular-devkit / build-角球
马里奥

对于第二步使用--force例如npm cache clean --force
Usman Saleh

这是唯一对我有用的东西。谢谢!
Andrew Junior Howard

24

我有同样的错误信息。但是原因和解决方案略有不同。当我运行“ ng -v”时,它显示了angular-cli(1.0.0-beta.28.3)和@ angular / cli(1.0.0-beta.31)的不同版本。我重新跑了:

npm install -g @angular/cli

现在两者都显示1.0.0-beta.31的版本。错误消息消失了,“ ng serve”现在可以工作了。(是的-我重新安装了@ angular / cli并且更新了angular-cli版本。)


请注意,刷新angular-cli 需要花费长时间,甚至一个小时也是如此。在时间紧迫的任务中间,它可能会给您的项目带来厄运。
塔马斯·波尔加尔(TamásPolgár)

对我来说,我正在尝试npm install -g angular-cli,现已弃用。我必须npm install -g @ angular / cli
罗比·史密斯

24

以我为例

sudo npm uninstall -g angular-cli @angular/cli
sudo npm cache clean --force
npm install npm@latest -g
sudo npm install -g @angular/cli

2
npm install npm@latest -g可能没有必要
Devin


14

逐步执行以下命令:

sudo npm uninstall -g angular-cli @angular/cli

sudo npm cache clean

npm install npm@latest -g

sudo npm install -g @angular/cli

npm rebuild node-sass --force

8

当我发现自己遇到相同的问题时,这对我有帮助:

npm uninstall -g angular-cli @angular/cli
npm cache clean --force
npm install -g @angular/cli@latest

5
npm uninstall -g angular-cli
npm uninstall --save angular-cli
npm uninstall -g @angular/cli
npm uninstall --save @angular/cli
npm cache clean
npm install --save-dev @angular/cli@latest

5

就我而言(Mac OS X和以前使用的Angular 1.5环境)

npm -g cache clean --force

npm cache clean --force

工作。(npm install -g @angular/cli@latest之后)




2
npm uninstall -g angular-cli @angular/cli

npm cache clean --force

npm install -g @angular-cli/latest

我尝试过类似的命令并为我工作,但请确保您在具有管理员权限的命令提示符下使用它们


1

我遇到了同样的问题-事实证明我使用的是不推荐使用的angular-cli而不是@ angular / cli。后者由我的开发团队使用,花了我一些时间才注意到我们正在使用不同版本的angular-cli。


1

我在运行项目时遇到了同样的问题:我发现如果您的项目正在使用package.json中任何东西的特定版本,请找出并安装该依赖项的特定版本,例如我,npm install @ angular / cli @ ^ 4.0.0



0

我遇到了类似的问题,但没有解决任何问题,但是随后我按照以下步骤操作,它对我有用。当我以管理员身份运行cmd时,对我来说效果很好。

  1. 首先以管理员身份运行命令提示符。

  2. 创建新项目。

如果仍然不创建项目,删除该文件夹及其所有的文件,然后运行ng new <project name>之后ng serve

如果没有任何效果,请卸载节点及其相关的所有其他文件,然后执行上述步骤


0

只需将其包含在devDependencies部分的package.json中

"angular-cli": "1.0.0-beta.25.5"

如果您在全球范围内安装了其他版本的cli,则不必强制安装它。

当我同时在不同的项目中使用angular2和4时遇到了这个问题。所以angular4-需要angular-cli @ latest,angular2需要angular-cli以上版本。


0
npm uninstall -g angular-cli 

npm install -g @angular/cli

而已!

在此处输入图片说明


1
欢迎使用Stack Overflow!请添加代码和数据作为文本(使用代码格式),而不是图像。图片:A)不允许我们复制和粘贴代码/错误/数据进行测试;B)不允许根据代码/错误/数据内容进行搜索;和许多更多的理由。通常,以文本格式>>>>代码/错误/数据作为图像>>的代码/错误/数据>>什么都没有。除了具有代码格式的文本外,还应该使用图像,如果图像添加了重要的内容而不仅仅是文本代码/错误/数据不能传达的话。
哔哔声,

谢谢你欢迎我 下次我会照顾的。
Bhavya Shah

0

您的版本可能有问题。

npm install -g @angular/cli@latest

上面的运行对我有用。谢谢!

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.