ng new my-app 意外令牌 =
Posted
技术标签:
【中文标题】ng new my-app 意外令牌 =【英文标题】:ng new my-app unexpected token = 【发布时间】:2017-06-29 04:44:57 【问题描述】:我已经通过 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 我的节点版本是 4.4.5,据我了解,这是安装和使用 angular-cli 的可接受版本。
如果有解决办法,请告诉我,我也尝试过卸载、清理 npm 缓存并重新安装,但我一直遇到同样的问题。
非常感谢任何和所有帮助,在此先感谢!
【问题讨论】:
您必须下载node
6.9 或更高版本。
在任何人冲过去索要代码之前,这看起来像是来自 within Angular2 的错误。或许您还应该检查一下 GitHub 站点,看看是否有任何未解决的错误?
@Kinduser Angular CLI 快速入门指南为什么指定我需要节点版本 4.x.x 或更高版本?
@Makoto 谢谢你,我会检查开放的错误。
我今天遇到了同样的错误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: Unexpected token =
【参考方案1】:
如果您安装了@angular/cli,则需要NodeJS
更高6.9.7,以及NPM
3或更高。
如果你已经安装了angular-cli,你需要NodeJS
高于4.4.x,再加上NPM
3或者更高。
有关更多信息,请参阅上面的链接并阅读先决条件。
【讨论】:
如果您引用一些权威,这个答案会更好。这样,如果这些版本号发生变化,它就可以更新。 谢谢你的回答,这是真的。我确实需要 NodeJS 6.9.7 或更高版本,但是本教程明确指出您只需要 NodeJS 4.xx 或更高版本,请在此处查看:angular.io/docs/ts/latest/cli-quickstart.html,因此它具有误导性,除非提出问题,否则我不会知道在这里。 @Kinduser 你绝对是对的,我只是努力按照说明进行操作,尤其是当我按照 Google 的说明进行操作时。需要更快地发布答案;)不过谢谢! 为什么有两个可以安装的cli?有什么不同?特定场景是否需要特定场景?一个不是 project.json 中的依赖项,一个是 project.json 中的 devdependency 吗? 分离依赖的原因是现在分离了 Angular 的 2 个版本。 Angular 2 仍在开发中,需要 @angular/cli 依赖,而 Angular 1 仍在使用 angular/cli。【参考方案2】:截至 2017 年 6 月 3 日,使用 Angular-CLI 1.1.0、NodeJS 7.10.0、npm 5.0.2、Angular 4.1.3、TypeScript 2.3.4,我遇到了 Original Poster (OP) 的错误在 Visual Studio 2017 中的 Task Runner Explorer 中,运行构建任务(在 package.json 中定义的 ng build)。
我启动了一个 PowerShell 提示符,导航到 package.json 所在的目录,并从命令行调用 ng build,它遇到了零错误。
这立即让我怀疑是 PATH(在 VS 2017 中)问题导致错误出现在 VS 2017 的 Task Runner 输出窗口中。
果然,在工具 / 选项 / 项目和解决方案 / Web 包管理 / 外部工具下,我不得不将 $(PATH) 的条目移到 $(VSINSTALLDIR)\Web\External 上方并且(至少在我的情况下) ) 下面 .\node_modules.bin.
完成上述所有操作后,我可以右键单击 Task Runner Explorer 的构建(在自定义选项卡下),这次成功了。
在任何人回复之前,请记住以下几点:
-
这对于 Visual Studio 2017 非常特殊,其中正在开发 Angular 4.1.3 应用程序以(希望)与 ASP.Net Core 1.1 和平共存。
我已全局安装和本地安装了 TypeScript 2.3。
我拥有最新的 NodeJS 和 NPM 版本(至少在撰写本文时)。
我使用的为我解决此问题的技术可能对您不起作用。
底线:可能是您的 PATH 中的事物的顺序可能导致错误。
【讨论】:
我今天也遇到了同样的问题,现在解决了!谢谢! :) 非常感谢这个解决方案!太棒了! 完美....但是您是如何获得依赖任务以等待ng build
完成的?【参考方案3】:
解决如下:
做
ashish@ashish-Inspiron-3521:~$ sudo su [sudo] ashish 的密码: root@ashish-Inspiron-3521:/home/ashish# sudo npm cache clean -f npm WARN 使用 --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
################################################# ################ 100.0%
################################################# ################ 100.0%
已安装: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
################################################# ################ 100.0%
已安装:v9.9.0
root@ashish-Inspiron-3521:/home/ashish# root@ashish-Inspiron-3521:/home/ashish# ng -v
_ _ ____ _ ___
/ \ _ __ __ _ _ _| | __ _ _ __ / | | | |
/ △ \ | ' \ / | | | | |/ _
| '| | | | | | |
/ \| | | | (| | || | | (| | | | || |_ | |
// __| ||__, |__,||__,|| __|_____||
|/
Angular CLI:1.7.3 节点:9.9.0 操作系统:linux x64 角度: ... root@ashish-Inspiron-3521:/home/ashish# node -v v9.9.0 root@ashish-Inspiron-3521:/home/ashish#
【讨论】:
以上是关于ng new my-app 意外令牌 =的主要内容,如果未能解决你的问题,请参考以下文章
使用 Jest 测试 Angular 时出现“意外的令牌导入”
解析错误:意外的令牌,预期的“,”和语法错误:意外的令牌'['[重复]