我有一个 Node/React 项目,在我的package.json 中,如果我想运行一些简单的脚本,我可能会这样做:
{
"scripts": {
"prep": "cp -r this/sub-directory/path another/sub-directory/path"
},
}
Run Code Online (Sandbox Code Playgroud)
然后yarn prep执行它。
但是,在这种情况下,我有很多命令,比如 5-6,并且将它们全部放在 package.json 文件中的一行中会使阅读变得困难。
我想做的是将它们放在一个单独的文件中,然后调用该文件。类似于名为run-script的文件:
#!/bin/bash
echo 'test'
Run Code Online (Sandbox Code Playgroud)
然后在 package.json 中:
{
"scripts": {
"prep": "run-script"
},
}
Run Code Online (Sandbox Code Playgroud)
但这显然给了我错误,我不知道如何告诉它运行文件,它应该是什么扩展名等(我知道我可以做,"prep": "node run-script.js"但在这种情况下,我想做一些简单的事情,例如复制目录等,而不是 JavaScript 的东西。)
需要@roadowl的两种解决方案。
chmod ug+x run-script设置权限,然后$PWD在package.json 中调用文件的位置前面添加当前工作目录变量 ( ) :{
"scripts": {
"prep": "$PWD/run-script"
},
}
Run Code Online (Sandbox Code Playgroud)
小智 3
我不明白为什么这行不通。我唯一的建议是使用其完整路径来调用它:
"prep": "/home/me/run-script"
Run Code Online (Sandbox Code Playgroud)
(其中“/home/me”是您的主目录,即“echo $HOME”打印的目录)。
此外,当然还要确保运行脚本可以执行:
chmod ug+x run-script
Run Code Online (Sandbox Code Playgroud)