你如何运行" npm install"在厨师的文件夹里面?

时间:2015-05-15 13:00:19

标签: node.js npm chef package.json

我正在尝试通过主厨脚本从GIT安装nodejs项目。我正在试图让NPM INSTALL从已安装的项目目录中运行并利用包含的" package.json"这是来自GIT。

我还尝试了不推荐使用的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 cookbook - 但这需要您列出软件包而不是顺从package.json。

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

2 个答案:

答案 0 :(得分:1)

这是我正在使用的,等待确定更好的替代方案:

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 repo(带有自签名ssl)安装nodejs项目的整个配方,随后调用NPM INSTALL利用底层package.json:

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

答案 1 :(得分:1)

使用nodejs cookbook,我使用以下内容:

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

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