目前我有一些定制的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'
}
...
这个解决方案对我不起作用,我也在几个地方读到这是一个反模式。
任何帮助表示赞赏!
答案 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