我设置composer.json
文件,以便在执行时自动运行某些任务。
脚本看起来像这样:
"scripts": {
"post-update-cmd": [
"@createDir",
"@installSlate",
"@installConcat"
],
"createDir": "npm install -g @shopify/slate",
"installSlate": "slate theme blank_theme",
"installConcat": "npm install grunt-contrib-concat --save-dev"
}
这可行,但它会在根文件夹中安装grunt插件,而不是blank_theme
。我尝试过添加;
"installConcat": "cd blank_theme npm install grunt-contrib-concat --save-dev"
或添加另一个命令进入blank_theme
目录,如下所示;
"scripts": {
"post-update-cmd": [
"@createDir",
"@installSlate",
"@moveDir",
"@installConcat"
],
"createDir": "npm install -g @shopify/slate",
"installSlate": "slate theme blank_theme",
"moveDir": "cd blank_theme",
"installConcat": "npm install grunt-contrib-concat --save-dev"
}
但没有运气。任何想法如何实现这一目标?
答案 0 :(得分:0)
它发生的原因是命令: npm install package_name 在当前目录或最近的父目录中安装指定的包,其中包含当前的package.json文件。 如果你需要在指定目录中安装someting,你应该把package.json文件放在那里,或者在这个目录中运行 npm init ,这将在那里创建这个文件,一切都会正常工作。
作为建议,我可以说:从命令中删除 - save-dev 。承认此子命令是将您安装的内容添加到package.json作为依赖项。通常我在开发过程中使用此命令,当我懒惰时手动将此依赖项写入package.json。在你的composer.json中 你没有必要使用这个子命令;
答案 1 :(得分:0)
我最终解决了这个问题,万一它可以帮助任何人
"installConcat": "npm install --prefix blank_theme grunt-contrib-concat --save-dev"