Node.js 当我运行时,有人能解释这个错误吗;npm运行ng新应用程序;?
所以我第一次尝试制作一个新的angular应用程序,我使用Node.js 当我运行时,有人能解释这个错误吗;npm运行ng新应用程序;?,node.js,angular,npm,Node.js,Angular,Npm,所以我第一次尝试制作一个新的angular应用程序,我使用npmi-g@angular/cli安装了它。当我尝试使用npm run ng new app创建新应用时,会出现以下错误: npm错误!路径E:\ddii\package.json npm错误!代码enoint npm错误!errno-4058 npm错误!系统调用打开 npm错误!eNote eNote:没有这样的文件或目录,请打开“E:\ddii\package.json” npm错误!eNONT这与npm无法找到文件有关。 npm
npmi-g@angular/cli
安装了它。当我尝试使用npm run ng new app
创建新应用时,会出现以下错误:
npm错误!路径E:\ddii\package.jsonnpm错误!代码enoint
npm错误!errno-4058
npm错误!系统调用打开
npm错误!eNote eNote:没有这样的文件或目录,请打开“E:\ddii\package.json”
npm错误!eNONT这与npm无法找到文件有关。 npm错误!埃诺特 npm错误!此运行的完整日志可在中找到:
npm错误!C:\Users…\AppData\Roaming\npm-cache\u logs\2018-09-10T20\u 22\u 50\u 118Z-debug.log
简而言之,您运行的命令不正确。从命令前面删除
npm run
,它应该可以工作
当您说npm run blah
时,npm会在您的包.json
中查找名为blah
的脚本,或者在您的例子中是ng
。所以如果您正在运行npm run ng new app
,npm希望当前目录中有一个package.json
,并且在该package.json
中,npm需要一个名为ng
的脚本。因此,如果当前目录中没有package.json
,那么您将得到一个错误
相反,关闭您的终端,打开一个新的终端,只需运行
ng new app
如果您想在不使用npm运行的情况下运行它…
,您需要全局安装ng,我会执行npm安装-g@angular/cli
,但是我正在运行linux,对于windows,我发现了这个线程
它应该可以帮助您安装angular cli的全局版本,您基本上可以做两件事:
检查问题答案,详细信息在那里。可能有助于将来的参考 至少对我来说,这项工作。 有时,对文件ng.cmd的引用(对于Win用户)的格式不正确,您必须调用它并直接传递参数 e、 g
即使您出于任何原因没有管理员权限,它也能工作我自己也很难找到这个答案,因为关于这个问题的其他答案并没有解决真正的根本问题 所有其他答案都建议使用(npm i-g…)全局安装
ng
,其副作用是指向ng
的符号链接将出现在您的路径上
基于OP的问题,我承认他很可能是在尝试从全球安装的ng
构建一个新的Angular应用程序。这可以处理90%的人的问题,一切都很好
一、 但是,希望使用本地安装的ng
,这就是为什么我的package.json中有一个npm脚本的原因:
如果这描述了您的用例,就像它描述了我的一样,那么请继续阅读
npm run ng update
对我来说是成功的,而其他具有更多参数的更复杂命令(包括命令行开关)则会彻底失败(npm run ng--update@angular/cli--migrate only tslint-version-6
)
答案在于,您必须用--
来限定传递给npm run script
的参数的开始(请参阅):
因此,在OP的情况下,假设他已经在本地安装了一个带有package.json的ng
(我承认这一点值得怀疑),他本可以:
npm run ng -- new app
无论如何,希望这对其他人有所帮助。我认为该命令是“新的”,而不是您的命令。你能试试吗?@kedenk It说ng不被识别为什么不使用“ng新项目名称”而不是“npm运行ng新应用程序”@Raj当我运行ng new project_name时,它说“ng不是一个内部或外部命令”,请添加一个屏幕截图……并检查点击命令的cmd路径……要么你没有安装angular cli,要么你使用了错误的文件夹。我最初尝试过,但没有成功,如果您键入其中ng
它是否会告诉您全局ng
节点模块的位置?信息:找不到给定模式的文件。这并非总是正确答案,尽管在大多数情况下是这样。一、 例如,希望依赖本地安装的ng
,因此我有一个npm脚本forng
,用于调用node\u modules/.bin/ng
。我将发布一个解决该问题的答案。我确实在全球范围内安装了它,但它仍然存在问题。@Jodast您必须确保您的终端仿真器能够识别ng
。您必须确定全局节点模块安装在您的计算机上的位置,然后将该路径添加到环境变量路径中。
npm run ng -- update @angular/cli --migrate-only tslint-version-6
npm run ng -- new app