gpt4 book ai didi

node.js - mkdir 在 linux 上的 npm 脚本中不工作,但在 mac 上工作

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:19:37 26 4
gpt4 key购买 nike

我有一个执行以下操作的“prebuild”脚本:

mkdir -p dist/{server,shared,client/{css,js,fonts,img}}

我想为此创建一个像这样的结构:

dist
server
shared
client
css
js
fonts
img

当我直接从终端运行 mkdir 命令时,它有正确的输出。但是,如果我像这样将此命令作为 npm 脚本:

package.json

{
"scripts": {
"prebuild": "mkdir -p dist/{server,shared,client/{css,js,fonts,img}}"
}
}

然后当我执行 npm run prebuild 时,它只会创建一个具有奇怪名称的文件夹:{server,shared,client

所以在 Ubuntu 上,它只在你直接输入命令时有效,但如果你把它放在 npm 脚本中,你就会遇到这个问题。在 Mac 上,它以任何一种方式工作。

有人知道为什么会这样吗?

最佳答案

npm 使用 /bin/sh 来执行脚本,但是 Ubuntu 使用 dash 作为它的 POSIX shell,而 Mac OS X 使用 庆典。大括号扩展是 bash 的一个特性,dash 没有。

bash(我认为这是不正确的)在作为 sh 调用时仍然处理大括号扩展。

关于node.js - mkdir 在 linux 上的 npm 脚本中不工作,但在 mac 上工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39669017/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com