如何在 npm 脚本中使用大括号?
How to use curly brackets in npm scripts?
我想 运行 在名为 prepare_build
:
的 npm 脚本中执行这个简单的命令
...
scripts: {
"prepare_build" : "mkdir -p dist/lib/{js,css}"
}
...
运行ning npm run prepare_build
将创建一个目录 dist/lib/{js,css}
而 运行ning 在控制台中的命令将同时创建 dist/lib/js
和 dist/lib/css
.
我做错了什么?
注:
- 我知道 Gulp、G运行t 和其他我不想使用的构建系统
- OS 互操作性在这里不是问题。 Linux 是主要目标。
使用 npm 脚本时往往会出现某些问题,尤其是在尝试创建适用于 Win 的 npm 脚本时,Linux 和 Mac。找到解决方法通常是最务实的。在你的情况下,我建议安装 mkdirp package npm install mkdirp --save-dev
然后下面的将起作用:
scripts: {
"prepare_build" : "mkdirp dist/lib/js dist/lib/css"
}
{js,css}
语法既不是 mkdir 的特性,也不是 OS 的特性。这是您 shell(可能 bash)的一个特征。因此,为了解释它,您需要执行可以理解该语法的 shell。
以下可能有效但未经测试:
scripts: {
"prepare_build" : "bash -c 'mkdir -p dist/lib/{js,css}'"
}
这会执行 bash,将命令转换为:
mkdir -p dist/lib/js dist/lib/css
在执行之前。
我想 运行 在名为 prepare_build
:
...
scripts: {
"prepare_build" : "mkdir -p dist/lib/{js,css}"
}
...
运行ning npm run prepare_build
将创建一个目录 dist/lib/{js,css}
而 运行ning 在控制台中的命令将同时创建 dist/lib/js
和 dist/lib/css
.
我做错了什么?
注:
- 我知道 Gulp、G运行t 和其他我不想使用的构建系统
- OS 互操作性在这里不是问题。 Linux 是主要目标。
使用 npm 脚本时往往会出现某些问题,尤其是在尝试创建适用于 Win 的 npm 脚本时,Linux 和 Mac。找到解决方法通常是最务实的。在你的情况下,我建议安装 mkdirp package npm install mkdirp --save-dev
然后下面的将起作用:
scripts: {
"prepare_build" : "mkdirp dist/lib/js dist/lib/css"
}
{js,css}
语法既不是 mkdir 的特性,也不是 OS 的特性。这是您 shell(可能 bash)的一个特征。因此,为了解释它,您需要执行可以理解该语法的 shell。
以下可能有效但未经测试:
scripts: {
"prepare_build" : "bash -c 'mkdir -p dist/lib/{js,css}'"
}
这会执行 bash,将命令转换为:
mkdir -p dist/lib/js dist/lib/css
在执行之前。