首页 > 解决方案 > 如何运行编写在外部 js 文件中的 npm 脚本(package.json)?

问题描述

我知道它已经涵盖在不同的问题中,但我的问题有点不同:如果听起来真的很菜,请提前抱歉。

这是 package.json 中的脚本:

"start": "nodemon ./index.js --exec \"node -r babel-register\"",

我将其替换为:

"start": "node scripts/start.js",

在 start.js 中,我这样做:

const { execSync } = require('child_process')

execSync('nodemon ../index.js --exec \"node -r babel-register\"')

引发错误:

/bin/sh: nodemon: 找不到命令

我对“execSync”是否正确?

我在文件中尝试了 import nodemon ,但显然没有帮助。

标签: javascriptnode.jspackage.json

解决方案


如果nodemon全局安装,您所做的应该可以工作,即:

npm install -g nodemon

但如果它作为项目依赖项安装,即:

npm install --save-dev nodemon

然后你需要从包含所有本地安装的二进制文件的目录中运行它:node_modules/.bin/

所以这样的事情应该有效:

execSync('./node_modules/.bin/nodemon ../index.js --exec \"node -r babel-register\"')

推荐阅读