ng new my-app unexpected token =

27
我已通过npm安装了angular2 cli,但是当我尝试使用命令'ng new my-app'创建新的typescript angular应用程序时,我一直收到此错误:
C:\Users\nicholas\AppData\Roaming\npm\node_modules\@angular\cli\models\config\config.js:15
    constructor(_configPath, schema, configJson, fallbacks = []) {
                                                           ^

SyntaxError: Unexpected token =
    at exports.runInThisContext (vm.js:53:16)
    at Module._compile (module.js:373:25)
    at Object.Module._extensions..js (module.js:416:10)
    at Module.load (module.js:343:32)
    at Function.Module._load (module.js:300:12)
    at Module.require (module.js:353:17)
    at require (internal/module.js:12:17)
    at Object.<anonymous> (C:\Users\nicholas\AppData\Roaming\npm\node_modules\@angular\cli\models\config.js:2:18)
    at Module._compile (module.js:409:26)
    at Object.Module._extensions..js (module.js:416:10)

我的NPM版本是4.1.2, 我的node版本是4.4.5,根据我的了解,这些版本都可以用于安装和使用angular-cli。

如果有解决方法,请告知我。我也已经尝试过卸载、清理npm缓存和重新安装,但问题依旧存在。

非常感谢任何形式的帮助,提前致谢!


1
您需要下载 node 版本 6.9 或更高版本。 - kind user
在任何人匆忙着为这个问题请求代码之前,这看起来像是Angular2内部出现的错误。也许您应该检查GitHub网站以查看是否有任何未解决的错误? - Makoto
2
@Kinduser,为什么Angular CLI快速入门指南要求我需要node版本4.x.x或更高版本? - Nicholas Pesa
@Makoto 谢谢,我会检查是否有未解决的错误。 - Nicholas Pesa
今天我遇到了同样的错误 `C:\Projects>ng new sjerd C:\Users\sjerd\AppData\Roaming\npm\node_modules@angular\cli\models\config\config.js:15 constructor(_configPath, schema, configJson, fallbacks = []) { ^SyntaxError: 意外的token =` - Sjoerd de Wit
您的环境已经设置为使用 Node.js 5.7.1 (x64) 和 npm。 - Sjoerd de Wit
3个回答

34
如果您已安装@angular/cli,则需要NodeJS高于6.9.7,以及NPM 3或更高版本。
如果您已安装angular-cli,则需要NodeJS高于4.4.x,以及NPM 3或更高版本。
有关详细信息,请参阅上面的链接并阅读先决条件。

1
如果你引用了一些权威的资料,这个答案会更好。这样,如果那些版本号发生变化,它就可以被更新。 - Heretic Monkey
谢谢您的回答,这是真的。我确实需要NodeJS 6.9.7或更高版本,但是针对此问题的教程明确说明只需要NodeJS 4.x.x或更高版本,请参见:https://angular.io/docs/ts/latest/cli-quickstart.html,因此这是误导性的,如果不在这里提问,我将不会知道。 - Nicholas Pesa
@Kinduser 你说得没错,我只是尽力遵循指示,特别是当我在遵循 Google 的指示时。需要更快地发布答案 ;) 不过还是谢谢你! - Nicholas Pesa
2
为什么有两个可以安装的CLI?它们有什么区别?某些情况需要特定的CLI吗?难道一个是project.json中的依赖项,而另一个是project.json中的devDependency吗? - default_noob_network
分离依赖项的原因是目前需要分离两个版本的Angular。Angular 2仍在开发中,需要@angular/cli依赖项,而Angular 1仍在使用angular/cli。 - Nicholas Pesa
优秀的答案。 - Abhishek Sharma

7
截至2017年06月03日,使用Angular-CLI 1.1.0,NodeJS 7.10.0,npm 5.0.2,Angular 4.1.3和TypeScript 2.3.4时,在Visual Studio 2017的任务运行器资源管理器中运行build任务(在package.json中定义为ng build)时,我遇到了与原帖作者相同的错误。
我打开一个PowerShell提示符,导航到包含package.json的目录,并从命令行调用ng build,结果没有任何错误。
这立即引起了我的怀疑,认为是PATH(在VS 2017中)的问题导致错误出现在VS 2017的任务运行器输出窗口中。
果不其然,在“工具/选项/项目和解决方案/ Web包管理/外部工具”下,我必须将$(PATH)条目上移,放在$(VSINSTALLDIR)\Web\External之上并(至少在我的情况下)位于.\node_modules.bin之下。
完成所有上述步骤后,我能够右键单击任务运行器资源管理器下的build(在自定义选项卡下),这次成功了。
在任何人回复之前,请记住以下几点:
1. 这非常特定于正在开发Angular 4.1.3应用程序的Visual Studio 2017,希望它能与ASP.Net Core 1.1和平共处。 2. 我已经全局安装和本地安装了TypeScript 2.3。 3. 我有最新版本的NodeJS和NPM(至少在撰写本帖时如此)。 4. 我解决这个问题所使用的技术可能对您无效。
底线是:可能是PATH中项目的顺序导致错误出现。

我今天也遇到了完全相同的问题,但是这个方法解决了它!谢谢! :) - Challe
非常感谢这个解决方案!太棒了! - Steven.Xi
太好了...但你是如何让依赖任务等待ng build完成的呢? - Serj Sagan

0

解决方法如下:

执行以下操作:

ashish@ashish-Inspiron-3521:~$ sudo su 输入 ashish 的密码: root@ashish-Inspiron-3521:/home/ashish# sudo npm cache clean -f npm 警告:使用 --force 选项时,请确保您知道自己在做什么。 root@ashish-Inspiron-3521:/home/ashish# sudo npm install -g n /usr/local/bin/n -> /usr/local/lib/node_modules/n/bin/n /usr/local/lib └── n@2.1.8

root@ashish-Inspiron-3521:/home/ashish# sudo n stable

 install : node-v9.8.0
   mkdir : /usr/local/n/versions/node/9.8.0
   fetch : https://nodejs.org/dist/v9.8.0/node-v9.8.0-linux-x64.tar.gz

已安装:v9.8.0

root@ashish-Inspiron-3521:/home/ashish# root@ashish-Inspiron-3521:/home/ashish# sudo ln -sf /usr/local/n/versions/node/9.8.0/bin/node /usr/bin/nodejs root@ashish-Inspiron-3521:/home/ashish# sudo n latest

 install : node-v9.9.0
   mkdir : /usr/local/n/versions/node/9.9.0
   fetch : https://nodejs.org/dist/v9.9.0/node-v9.9.0-linux-x64.tar.gz

已安装:v9.9.0

root@ashish-Inspiron-3521:/home/ashish# root@ashish-Inspiron-3521:/home/ashish# ng -v

_                      _                 ____ _     ___

/ \ _ __ __ _ _ _| | __ _ _ __ / | | | | / △ \ | ' \ / | | | | |/ _ | '| | | | | | | / \| | | | (| | || | | (| | | | || |_ | | // __| ||__, |__,||__,|| __|_____|| |/

Angular CLI: 1.7.3 Node: 9.9.0 OS: linux x64 Angular: ... root@ashish-Inspiron-3521:/home/ashish# node -v v9.9.0 root@ashish-Inspiron-3521:/home/ashish#


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接