1

我正在尝试通过厨师脚本从 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 而不必复制似乎很理想。

4

2 回答 2

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 项目的整个配方,然后利用底层 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
于 2015-05-15T15:54:12.030 回答
1

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

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

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

于 2016-01-26T11:20:49.523 回答