初始化 git 后,"ember new"命令失败。是否有详细的日志可以查看?



我是ember.js、node和npm的新手。我在运行"ember new my project"命令时遇到问题。我强烈怀疑我安装错误,搞砸了目录权限或其他什么,但我不知道调查的最佳方法。

环境如下:AWS EC2实例、ubuntu 16.04、nodejs 7.5.0和npm 4.2.0、bower 1.8.0、ember cli 2.11.1。

npm、bower和ember是用-g安装的,而不是像ember.js文档建议的那样使用sudo。

当我运行"ember new my project"命令时,我得到"Successfully initialized git",然后我得到

Error creating new application. Removing generated directory `./my-project`
Command failed: /home/ubuntu/.npm-global/lib/node_modules/ember-cli/node_modules/npm/bin/npm-cli.js install --no-optional --loglevel error
npm WARN deprecated minimatch@2.0.10: Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue

当我运行~$npm ls minimatch来检查错误的minimatch部分时,我没有看到任何模块需要2.0.10,所以我不确定这是从哪里来的。我也不确定这是否真的是导致整个事情失败的原因。

我还试着运行npm安装minimatch@3.0.2但这只是把它放在外面npm@4.2.0树,正如你所看到的。

/home/ubuntu
├── minimatch@3.0.2
└─┬ npm@4.2.0
├─┬ fstream-npm@1.2.0
│ └─┬ fstream-ignore@1.0.5
│   └── minimatch@3.0.3
├─┬ glob@7.1.1
│ └── minimatch@3.0.3
├─┬ init-package-json@1.9.4
│ └─┬ glob@6.0.4
│   └── minimatch@3.0.3
├─┬ node-gyp@3.5.0
│ └── minimatch@3.0.3
└─┬ read-package-json@2.0.4
└─┬ glob@6.0.4
└── minimatch@3.0.3

到目前为止,我尝试的基本上是玩版本游戏-删除和重新安装nodejs和npm,使用不同的版本(文档和谷歌推荐了不同版本的node和npm用于ember cli。我尝试了node 4.0.0和npm 2.x.x和3.x.x)

我还尝试使用ember cli 2.11.0,因为该版本在本地VM中对我来说运行正常,并使用"sudo"运行命令。

我可以在哪里查看npm或ember-cli的更详细的错误日志吗?有人能给我指一个正确的方向来弄清楚这里发生了什么吗?

您可以使用DEBUG选项运行ember new

DEBUG=* ember new projectname

这将生成大量的输出,但它应该可以帮助您找出它的中断位置。

感谢@Jure C.为我提出的问题提供了答案,我为任何找到这个问题的人找到了答案:

从他的回答中,我得到了以下内容:"运行'ember new my-project --skip-npm ; cd my-project ; npm install'会显示更多信息…npm安装每次都挂起,同时提取库并被杀死,而不是每次都在同一个地方">

这让我相信这是一个奇怪的系统资源和/或超时问题,而不是权限或代码问题。

出现问题:

1) 似乎有一个本地(而不是全球)安装的npm版本把事情搞砸了。不确定我是什么时候做的,但那真是太棒了。在哪里删除这个并不是很直观,但最终我在谷歌上搜索了一下,它帮助这个过程走得更远。

2) 事实证明,这个可怜的小AWS实例根本无法完成任务!

ulimit -n 2048

可能有些过头了,但允许npm安装的所有提取过程在终止之前完成。

最新更新