如何从主厨的文件夹中运行“npm install”?

我试图通过厨师脚本从GIT安装nodejs项目。 我在试图让NPM INSTALL从已安装的项目目录中运行,并利用来自GIT的“package.json”。

我也尝试了不赞成的NPM食谱:

18>> npm_package do 19: path node[:deploy_nodejs_from_git][:destination] 20: action :install_from_json 21: end 

但是这不起作用 – 而且我不知道是否值得努力使其工作,因为它已被弃用:

 [2015-05-15T08:50:25-04:00] ERROR: You must supply a name when declaring a npm_package resource 

我已经看过了nodejs食谱 – 但是这需要你列出软件包,而不是推迟到package.json。

这是不是正确的做法? 我们是一家小商店,能够利用package.json,而不必复制似乎理想。

这是我正在使用,待确定一个更好的替代:

 if node[:deploy_nodejs_from_git][:destination] path = node[:deploy_nodejs_from_git][:destination] cmd = "npm install" execute "npm install at #{path}" do cwd path command cmd end end 

从git仓库(使用自签名ssl)安装nodejs项目的整个配方,然后利用底层package.json调用NPM INSTALL:

 ENV['GIT_SSL_NO_VERIFY']="true" directory node[:deploy_nodejs_from_git][:destination] do owner 'root' group 'root' mode '0755' action :create end git node[:deploy_nodejs_from_git][:destination] do repository node[:deploy_nodejs_from_git][:git_repo] action :sync revision node[:deploy_nodejs_from_git][:branch] end if node[:deploy_nodejs_from_git][:destination] path = node[:deploy_nodejs_from_git][:destination] cmd = "npm install" execute "npm install at #{path}" do cwd path command cmd end end 

使用nodejs食谱,我使用以下内容:

 nodejs_npm 'package.json' do path node['myappplication']['home'] json true end 

好的部分:它使用package.json并安装NPM。 不好的部分:它永远不会结束,我的厨师客户端挂起,但我不这与食谱本身有关。

Interesting Posts