自定义节点模块,用于安装依赖项

时间:2015-02-27 00:24:44

标签: javascript node.js npm yeoman

目前我有一些定制的Yeoman生成器用于某些应用程序。这个生成器需要一些依赖和配置。

1 - 全球安装GruntJS;

2 - 全球安装Bower;

3 - Yeoman将在全球范围内安装;

4 - 其他一些配置;

问题:是否有任何工具可以管理此依赖项工作流程?

最理想的是,我希望分两个步骤

1 - 安装Node.Js

2 - npm install my-generator

第二步将负责全局安装所有软件包。

我看到了一些在 package.json 中使用预安装脚本的示例,如下所示:

...
scripts: {
  preinstall: 'npm install bower -g; npm install grunt-cli -g'
}
...

这个解决方案对我不起作用,我也在几个地方读到这是一个反模式。

任何帮助表示赞赏!

1 个答案:

答案 0 :(得分:1)

它是反模式的,因为npm通常会在执行预安装脚本之前降级超级用户权限。但是为了安装全局包,您必须以sudo的形式执行它。问题是您需要通过向超级用户提供npm安装脚本来使您的安装不安全

您可以通过在项目根目录中创建具有以下内容的.npmrc文件来实现此目的:

unsafe-perm = true

你的package.json看起来像:

{
  "name": "foo",
  "version": "1.4.4",
  "scripts" :  { 
    "preinstall" : "npm install -g bower; npm install -g grunt-cli"
  }
}

然后你可以运行

sudo npm install