自定义节点模块以安装依赖项
Custom Node module to install dependencies
目前我有一个用于某些应用程序的自定义 Yeoman 生成器。此生成器需要一些依赖项和配置。
1 - 全局安装 GruntJS;
2 - 全局安装 Bower;
3 - 全局安装 Yeoman;
4 - 其他一些配置到位;
问题:是否有任何工具可以管理此依赖项工作流程?
最理想的是,我希望有一个两步过程
1 - 安装 Node.Js
2 - npm 安装我的发电机
第二步负责全局安装所有包。
我在 package.json 中看到了一些使用预安装脚本的示例,如下所示:
...
scripts: {
preinstall: 'npm install bower -g; npm install grunt-cli -g'
}
...
这个解决方案对我不起作用,我也在几个地方读到这是一个反模式。
感谢任何帮助!
这是反模式,因为 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
目前我有一个用于某些应用程序的自定义 Yeoman 生成器。此生成器需要一些依赖项和配置。
1 - 全局安装 GruntJS;
2 - 全局安装 Bower;
3 - 全局安装 Yeoman;
4 - 其他一些配置到位;
问题:是否有任何工具可以管理此依赖项工作流程?
最理想的是,我希望有一个两步过程
1 - 安装 Node.Js
2 - npm 安装我的发电机
第二步负责全局安装所有包。
我在 package.json 中看到了一些使用预安装脚本的示例,如下所示:
...
scripts: {
preinstall: 'npm install bower -g; npm install grunt-cli -g'
}
...
这个解决方案对我不起作用,我也在几个地方读到这是一个反模式。
感谢任何帮助!
这是反模式,因为 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