厨师安装节点、npm 和包以及 运行 它们

chef installing node, npm and packages and running them

我正在通过 'nodejs' 食谱安装 node 和 npm,并且我正在通过

包括食谱
include_recipe "nodejs::npm"

我已经安装了我想要的软件包:

%w( dateformat aws2js optparse cloudwatch2graphite).each do |npm_package|
    nodejs_npm npm_package
end

厨师说安装成功。

当我登录框并键入 npm list 时,无论我是用户 root 还是用户 vagrant.[=18,它都只是 returns 空=]

为什么包裹列表是空的?这是用户上下文问题吗?

其次,我如何运行 一个全局安装的包,例如cloudwatch2graphite

当它作为全局包安装时,我就这样做吗

node cw2graphite.js

从任何地方得到它 运行?

奖励积分:

出于好奇,哪个用户在 vagrant 和 box 上都使用 chef 运行?

四处寻找后,我意识到我做错了什么。

使用 npm 对全局包执行任何操作都必须使用 -g 事后看来很明显,但我不是一个节点人,所以这是一个容易犯的错误。

因此,要列出全局包,它是:

npm -g list

然而,运行 你应该做的脚本:

npm -g run <package-name> <package-script>

当我尝试用它启动 cloudwatch2graphite 时没有任何反应。

就是说,我可以通过以下方式让它工作:

node `npm -g root`/<package-name>/<script-name>.js