【问题标题】:How to run npm script (package.json) written in an external js file?如何运行编写在外部 js 文件中的 npm 脚本(package.json)?
【发布时间】:2021-10-11 00:27:23
【问题描述】:

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

这是 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”是否正确?

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

【问题讨论】:

  • nodemon 是全局安装还是作为项目依赖安装?
  • 它是一个项目依赖

标签: javascript node.js package.json


【解决方案1】:

如果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\"')

【讨论】:

  • 谢谢。当然。和 { stdio: 'inherit' } 作为将输出保留在控制台中的选项
猜你喜欢
  • 2020-03-04
  • 2023-02-04
  • 2016-01-03
  • 1970-01-01
  • 2016-07-15
  • 1970-01-01
  • 2022-11-20
  • 2014-06-05
  • 1970-01-01
相关资源
最近更新 更多