Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 当我运行时,有人能解释这个错误吗;npm运行ng新应用程序;?_Node.js_Angular_Npm - Fatal编程技术网

Node.js 当我运行时,有人能解释这个错误吗;npm运行ng新应用程序;?

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

所以我第一次尝试制作一个新的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错误!埃诺特

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的全局版本,您基本上可以做两件事:

  • 安装全局angular cli(如果没有)
  • 确保它位于环境变量的路径中

  • 检查问题答案,详细信息在那里。

    可能有助于将来的参考

    至少对我来说,这项工作。 有时,对文件ng.cmd的引用(对于Win用户)的格式不正确,您必须调用它并直接传递参数

    e、 g

    \ng.cmd新应用程序


    即使您出于任何原因没有管理员权限,它也能工作

    我自己也很难找到这个答案,因为关于这个问题的其他答案并没有解决真正的根本问题

    所有其他答案都建议使用(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脚本
    for
    ng
    ,用于调用
    node\u modules/.bin/ng
    。我将发布一个解决该问题的答案。我确实在全球范围内安装了它,但它仍然存在问题。@Jodast您必须确保您的终端仿真器能够识别
    ng
    。您必须确定全局节点模块安装在您的计算机上的位置,然后将该路径添加到环境变量路径中。
    npm run ng -- update @angular/cli --migrate-only tslint-version-6
    
    npm run ng -- new app