当npm安装节点包@错误版本的Node时,如何获取错误/警告

时间:2015-04-05 05:50:02

标签: javascript node.js npm io.js

我正在玩io.js并且这样做发现我自己在Node和io.js之间切换了很多。

事实上;当我安装一个特别需要io.js的软件包时,我错过了某种警告或错误。这是一个简单的package.json,作为一个例子:

{
  "name": "myApp",
  "version": "1.0.0",
  "description": "Simple demo site",
  "main": "app.js",
  "scripts": {
    "start": "node app.js"
  },
  "dependencies": {
    "express": "3.1.0"
  },
  "engineStrict" : "true",
  "engines" :{
    "iojs" : "1.6.3"
  }
}

app.js很简单,但只是为了完成:

var app = module.exports = require('express')();

app.get('/user', function(req, res){
  res.send(200, { name: 'tobi' });
});

app.listen(3000);
console.log("Application is listening on http://localhost:3000/user")

如果我在我的终端nvm use node中使用节点0.12.0然后清理node_modulesrm -rf node_modules),我仍然可以npm install这些包。没问题,没有警告,没有错误。它可能无法运行,但会安装所有依赖项。

但是,我在文档中发现,如果我升级一个目录cd ..,然后再次删除node_modulesrm -rf node_modules)并运行

npm install myApp

(其中myApp是我的package.json所在的文件夹)。我收到了警告。如果我设置了"engineStrict": "true",则会出错。

现在,终于到了我的问题;如果我切换到io.js(nvm use iojs),然后运行:

该怎么办?
npm install myApp

没有警告或错误。太棒了 - 安装得很好。但是...... node_modules - 文件夹中没有myApp

来自npm install的第一行反馈意见如下:

demoapp@1.0.0 ../../../../../../../node_modules/myApp

../../../../../../../是我的用户的根(~)。 myApp就在那里并且有效。但为什么?

还有:是否有另一种方法来获取安装错误而不是1)升级一个目录,2)npm install [目录名] 3)在root中查看已安装的内容?

感谢您对此提供任何帮助。

[UPDATE] 在荷马的话中

  

卫生署!

我刚发现another question and answer about this。留在这里作为参考,并作为我自己缺乏RTM的证明。

您可以使用--prefix-flag到要安装程序包的目录。从上面的例子中,完整的命令将是:

npm install --prefix ./myApp/ myApp

但......那不会给我警告......现在我真的必须在收到警告和决定安装包的位置之间做出选择吗?

0 个答案:

没有答案