首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在指定目录中运行脚本命令

在指定目录中运行脚本命令
EN

Stack Overflow用户
提问于 2018-02-08 21:11:09
回答 2查看 544关注 0票数 0

我正在设置一个composer.json文件,以便在执行某些任务时自动运行。

脚本如下所示:

代码语言:javascript
复制
"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中。我已经尝试添加了;

代码语言:javascript
复制
"installConcat": "cd blank_theme npm install grunt-contrib-concat --save-dev"

或者添加另一个命令进入blank_theme目录,如下所示;

代码语言:javascript
复制
"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"
}

但没那么走运。有什么办法可以做到这一点吗?

EN

回答 2

Stack Overflow用户

发布于 2018-02-08 22:19:56

它的发生是因为命令:npm install package_name在当前目录或当前package.json文件所在的最近父目录中安装指定的软件包。如果你需要在指定的目录中安装一些东西,你应该把package.json文件放在那里,或者在这个目录下运行npm init,它会在那里创建这个文件,一切都会正常工作。

作为建议,我可以说:从命令中删除--save-dev。该子命令的作用是将您安装到package.json中的内容作为依赖项添加。我通常在开发过程中使用这个命令,当我懒惰的时候,手动将这个依赖写到package.json中。在你的composer.json中,你不需要这个子命令;

票数 0
EN

Stack Overflow用户

发布于 2018-02-09 00:29:06

我最终这样解决了它,以防它对任何人有帮助

代码语言:javascript
复制
"installConcat": "npm install --prefix blank_theme  grunt-contrib-concat --save-dev"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48686304

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档