我有一个Node / React项目,并且在我的 package.json 中,如果我想运行一些简单的脚本,我可以这样做:
{
"scripts": {
"prep": "cp -r this/sub-directory/path another/sub-directory/path"
},
}
然后yarn prep
来执行它。
但是,在这种情况下,我有很多命令,例如5-6,并将它们全部放在package.json文件中的一行上会使其难以阅读。
我想做的是将它们放在单独的文件中,然后仅调用该文件。类似于名为 run-script 的文件:
#!/bin/bash
echo 'test'
,然后在package.json中:
{
"scripts": {
"prep": "run-script"
},
}
但是,这显然给了我错误,我不知道如何告诉它运行文件,应该使用什么扩展名,等等。(我知道我可以做"prep": "node run-script.js"
,但是在这种情况下我想做一些简单的事情,例如复制目录,而不是JavaScript。)
@roadowl都需要解决方案。
chmod ug+x run-script
设置权限,然后$PWD
):{
"scripts": {
"prep": "$PWD/run-script"
},
}
答案 0 :(得分:2)
无需设置绝对路径,相对URL可以正常工作,但是请记住,如果您要引用的是同一文件夹,请不要忘记在'./'前面加上
例如:
"scripts": {
...
"foo": "./foo.sh",
...
}
此外,如Roadowl所建议,您必须设置执行权限
答案 1 :(得分:0)
我不明白为什么这行不通。 我唯一的建议是使用完整路径进行调用:
"prep": "/home/me/run-script"
(“ / home / me”是您的主目录,即'echo $ HOME'打印的目录)。
此外,当然,请通过执行以下操作确保run-script是可执行的:
chmod ug+x run-script