如何为npm run <script>指定自定义JSON文件运行scripts脚本
运行非package.json的自定义JSON文件中scripts脚本的方法
前置说明
你示例中
example.json里的teschest脚本存在语法错误:node console.log('jf')会被node判定为要加载名为console.log的文件,无法正常执行,正确写法应为node -e "console.log('jf')"
方法1:无额外依赖的Node.js原生实现(推荐)
不需要安装任何第三方工具,只需要新建一个简短的执行脚本即可:
- 在和
example.json同级的目录下新建run-custom.js文件,代码如下:
const fs = require('fs'); const { execSync } = require('child_process'); // 读取自定义配置文件 const config = JSON.parse(fs.readFileSync('./example.json', 'utf-8')); // 从命令行参数获取要执行的脚本名 const targetScript = process.argv[2]; if (!config.scripts || !config.scripts[targetScript]) { console.error(`不存在名为 ${targetScript} 的脚本`); process.exit(1); } // 执行脚本,输出直接透传到当前终端 execSync(config.scripts[targetScript], { stdio: 'inherit' });
- 要运行
teschest脚本时,直接执行命令:node run-custom.js teschest
方法2:使用第三方npm包快速执行
如果不想自己写脚本,可以安装通用的自定义脚本执行工具:
- 全局安装
run-scripts工具:npm install -g run-scripts - 执行指定脚本命令:
run-scripts --config example.json teschest
内容的提问来源于stack exchange,提问作者Noah Bergh
相关产品推荐
相关产品推荐

