我通过' nodejs'安装节点和npm。食谱和我通过
包括食谱include_recipe "nodejs::npm"
我已经安装了我想要的软件包:
%w( dateformat aws2js optparse cloudwatch2graphite).each do |npm_package|
nodejs_npm npm_package
end
并且厨师说它已经成功安装了它们。
当我登录该框并输入npm list
时,无论我是用户root
还是用户vagrant
,它都会返回空白。
为什么包裹清单是空的?这是用户上下文问题吗?
其次,如何运行全局安装的软件包,例如cloudwatch2graphite
。
当它作为全局包安装时,我是否只做
node cw2graphite.js
从哪里开始运行?
奖励积分:
出于好奇,厨师在流浪汉和盒子上运行的是什么用户?
答案 0 :(得分:0)
在四处寻找之后,我意识到我做错了什么。
使用npm对你必须使用-g
的全局包做任何事情,事后看来很明显,但我不是一个节点人,所以这很容易犯错误。
所以要列出全局包:
npm -g list
然而,在运行您应该执行的脚本时:
npm -g run <package-name> <package-script>
当我尝试使用它来启动cloudwatch2graphite时没有发生任何事情。
那就是说,我能够通过这样做来实现它:
node `npm -g root`/<package-name>/<script-name>.js