我有一个使用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"
}
我正在尝试在prestart中设置NODE_ENV变量,让npm调用main来调用npm start。但是,在prestart中设置的环境变量不会转发并且未定义。当我运行  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
但是当我从应用程序打印变量时,它是未定义的。我在这里做错了什么,或者它应该如何表现?有没有办法使用' SET NODE_ENV = dev'来调用和设置env变量?没有将它链接到节点server.js'
当我在'开始'如下所示,然后设置环境变量。
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"start": "set NODE_ENV=dev && node server.js"
}
我正在Windows 10上测试,npm版本3.10.10。感谢您的帮助。
我知道如何使用' start'在package.json中完成此操作。这个问题具体到如何通过预启动来实现这一目标。
感谢。