我正在通过'nodejs'食谱安装node和npm,并且通过
include_recipe "nodejs::npm"
我已经安装了想要的软件包,如下所示:
%w( dateformat aws2js optparse cloudwatch2graphite).each do |npm_package|
nodejs_npm npm_package
end
厨师说已经成功安装好了
当我登录到该框并键入npm list
内容时,无论我是userroot
还是user,它只会返回空vagrant
。
为什么包裹清单为空?是用户上下文问题吗?
其次,如何运行全局安装的软件包,例如cloudwatch2graphite
。
作为全局软件包安装时,我只是做
node cw2graphite.js
从任何地方可以运行它?
奖励积分:
出于好奇,厨师在流浪汉和盒子上都以什么用户身份运行?
闲逛后,我意识到自己做错了。
使用npm对全局包执行任何操作时,您必须使用-g
它,事后看来很明显,但是我并不是一个节点专家,因此很容易犯错误。
因此,列出全局软件包是:
npm -g list
但是,在运行脚本时,您应该执行以下操作:
npm -g run <package-name> <package-script>
当我尝试使用它启动cloudwatch2graphite时,没有任何反应。
就是说,我能够通过以下方式使其工作:
node `npm -g root`/<package-name>/<script-name>.js
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句