小编Dre*_*der的帖子

NPM:如何在 package.json 的预启动脚本中挂钩 SET NODE_ENV?

我有一个使用 npm init -y 创建的基本应用程序。在 package.json 中,我有一个指向 server.js 的主条目。

{
  "name": "rest-api",
  "version": "1.0.0",
  "description": "",
  "main": "server.js",
  "private": true,
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "prestart": "SET NODE_ENV=dev"
}
Run Code Online (Sandbox Code Playgroud)

我试图在预启动中设置 NODE_ENV 变量,并让 npm 调用 main 来调用 npm start。但是预启动中设置的环境变量不会被继承并且未定义。当我运行“npm start”时,控制台输出两个命令都按顺序执行。

    PS D:\test\RestAPI> npm start

    > rest-api@1.0.0 prestart D:\test\RestAPI
    > set NODE_ENV=dev

    > rest-api@1.0.0 start D:\test\RestAPI
    > node server.js

    undefined
    [undefined] Listening on http://localhost:3000
Run Code Online (Sandbox Code Playgroud)

但是当我从应用程序打印变量时,它是未定义的。我在这里做错了什么,或者这是它应该表现的方式吗?有没有办法使用“SET NODE_ENV=dev”调用和设置环境变量,而不将其链接到“node server.js”

当我将两者组合在“开始”中时,如下所示,然后设置环境变量。

  "scripts": {
    "test": "echo \"Error: no test specified\" …
Run Code Online (Sandbox Code Playgroud)

node.js npm

6
推荐指数
1
解决办法
6088
查看次数

标签 统计

node.js ×1

npm ×1