在安装后生命周期-NPM中运行Grunt任务

在安装后生命周期-NPM中运行Grunt任务,npm,gruntjs,npm-install,npm-scripts,Npm,Gruntjs,Npm Install,Npm Scripts,我们在GIT存储库中有一个jQueryUI组件列表。如果用户愿意,可以包含整个捆绑包。如果用户希望将特定组件单独包含到其项目中,则用户可以设置一个环境变量“component”,以提及他们希望包含的组件。根据其值,我希望使用提供的值执行grunt任务。我的包的package.json如下所示。我想这样做是因为我不想为每个组件维护一个单独的GIT存储库,因为维护非常困难 { “名称”:“, “版本”:“3.0.24”, “说明”:“, “主要”:“, “脚本”:{ “postinstall”:“交

我们在GIT存储库中有一个jQueryUI组件列表。如果用户愿意,可以包含整个捆绑包。如果用户希望将特定组件单独包含到其项目中,则用户可以设置一个环境变量“component”,以提及他们希望包含的组件。根据其值,我希望使用提供的值执行grunt任务。我的包的package.json如下所示。我想这样做是因为我不想为每个组件维护一个单独的GIT存储库,因为维护非常困难

{
“名称”:“,
“版本”:“3.0.24”,
“说明”:“,
“主要”:“,
“脚本”:{
“postinstall”:“交叉变量grunt--component=$npm\u config\u component”,
“测试”:“echo\”错误:未指定测试\“&退出1”
},
“存储库”:{
“类型”:“git”,
“url”:”
},
“关键词”:[
“jquery插件”,
“生态系统:jquery”
],
“作者”:“作者”,
“许可证”:“ISC”,
“依赖性”:{
“咕噜”:“^1.0.1”,
“grunt cli”:“^1.2.0”,
“grunt contrib concat”:“^1.0.1”,
“grunt contrib副本”:“^1.0.0”,
“grunt contrib cssmin”:“^2.2.0”,
“grunt contrib sass”:“^1.0.0”,
“grunt contrib丑恶”:“^3.0.1”
}
}
但是问题是在发布后,如果我提供npm安装“包名”,我会得到以下错误

> cross-var grunt --component=$npm_config_component

>> Local Npm module "grunt-contrib-concat" not found. Is it installed?
>> Local Npm module "grunt-contrib-uglify" not found. Is it installed?
>> Local Npm module "grunt-contrib-sass" not found. Is it installed?
>> Local Npm module "grunt-contrib-cssmin" not found. Is it installed?
>> Local Npm module "grunt-contrib-copy" not found. Is it installed?
Warning: Task "concat" not found. Use --force to continue.

Aborted due to warnings.

我尝试将
devDependencies
移动到
dependencies
并再次尝试安装该包。但似乎什么都不管用。我还尝试将
npm install
放在我的package.json的
preinstall
中,当我提供
npm install

时,它会一次又一次无限地执行同一行,尝试将grunt contib*移动到依赖项,并运行
npm install
一次(而不是在pre install中),在安装任何软件包之前,我也尝试过。所有grunt contrib*软件包都在node_模块中提供。但仍然得到同样的错误。