npm 运行 start 和 node server.js 之间的区别

Difference between npm run start and node server.js

运行应用程序使用

有什么区别

1)

node server.js 

并制作脚本

"start" : "node server.js" 

使用

npm run start.

当我打字时

1)

node server.js | pino-pretty 

终端出现错误

pino-pretty not found

当我做的时候

"start": "node server.js | pino-pretty" 

在 package.json 中输入

npm run start 

在终端中有效。

显然 运行 1 和 2 中的应用程序之间存在根本区别。

区别在于 PATH。

根据 npm run 文档:

In addition to the shell's pre-existing PATH, npm run adds node_modules/.bin to the PATH provided to scripts.

您会在 node_modules/.bin 中找到 pino-pretty。