【问题标题】:npm postinstall fails with multiple commandsnpm postinstall 使用多个命令失败
【发布时间】:2014-08-24 10:41:14
【问题描述】:

在我的composer.json 中,有一个postinstall 挂钩设置,如下所示:

"scripts" : {
    "dist" :        "node dist; node_modules/.bin/doccoh src/package.js",
    "postinstall" : "node_modules/.bin/grunt setup || true; node_modules/.bin/bower install",
    "start" :       "node server.js"
}

每当我运行它时(从 Git/Gnu Bash CLI 在 Win 上运行),我都会以

结束

command not found. either the command was written wrong or couldn't be found

德语 CLI 错误的粗略翻译。

我尝试将其拆分为多个;/分号分隔的部分,并首先将cd 放入该目录,但它只是以相同的错误消息结束。用简单的ls 替换整个postinstall 命令集确实有效。所以我问题可能是分号分隔或命令的错误使用。但总的来说,我不知道出了什么问题。

注意:我全局安装了grunt-cli 0.1.9 版和grunt 0.4.1 版。

【问题讨论】:

  • 这可能有点晚了,但是:您可以在本地 (!) 安装 gruntgrunt-clibower,然后从您的 package.json 中删除路径 (node_modules/.bin) .如果node_modules 中安装了gruntbower,NPM 将找到它们:npmjs.org/doc/misc/npm-scripts.html(“环境”部分)
  • @svckr +1 删除 node_modules/.bin 部分对我有用。
  • @svckr 你想添加这个作为答案吗?

标签: node.js bash command-line-interface npm post-install


【解决方案1】:

我回答得有点晚了,但是如果您使用的是 Windows,则使用 && 执行单行上的多个命令

postinstall: "some command && some other -c"

【讨论】:

  • 您知道跨平台支持的方法吗?
  • @Plato 供将来参考,&& 运算符可在 Windows 和 linux 上运行。不过,这些命令可能不兼容(在 linux 和 windows 上可以使用相同语法的少数命令)。运行多条指令最安全的方法是创建一个 JS 脚本并使用节点运行时运行它,如下所示:"postinstall": "node ./postinstallscript.js"
【解决方案2】:

我在寻找一些东西时遇到了这个问题,并认为这可能对其他人有所帮助。我发现移动到 postinstall.js 文件更容易,因为事情变得有点复杂。这使得更容易处理前进的问题。

【讨论】:

  • 介意提交edit 并更详细地描述您的流程吗?提前致谢。
  • 可以在postinstall.js分享样品
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-26
  • 1970-01-01
  • 2020-02-29
  • 2018-01-19
  • 2019-10-04
相关资源
最近更新 更多