NPM运行构建总是生成生产环境而不是开发环境

15

在我接手的一个继承项目中,我尝试将构建命令生成除Production以外的版本。

我已经尝试更改package.jsonscript部分的别名,传入额外的变量,例如--dev--configuration=dev,但都没有成功。


该项目有以下json数据文件:

 env.dev
 env.development
 env.production

package.json中有一个构建别名build:dev,我运行npm run build:dev

"scripts": {
    "start": "NODE_ENV=dev && react-scripts start","build:dev": "npm run build --dev --configuration=dev && react-scripts build"
}

这段代码可以正常工作并构建,但只适用于生产环境。我在查看生成的文件时进行验证。


如果我从目录中删除env.production文件并运行构建命令,则会出现以下错误:

Creating an optimized production build...
Failed to compile.

Module not found: Error: Can't resolve 'polyfills' in 'C:\Work\MyProj\WebSiteName\src'

它只是告诉我它可以为位置 NODE_PATH=src/ 中找到的 env.production 文件别名 polyfills

你有什么想法?

1个回答

6

在调用构建命令之前,您需要像在 "start" 中一样设置环境变量。

"build:dev": "NODE_ENV=dev npm run build --dev --configuration=dev && react-scripts build"


1
在 Windows 上使用以下命令:"build:dev": "SET NODE_ENV=dev npm run build --dev --configuration=dev && react-scripts build",即在 NODE_ENV 前面添加 SET - wal
1
设置 NODE_ENV 不会影响它,无论是使用 env NODE_ENV,在运行构建之前调用 export NODE_ENV=dev,还是将其放入 .env 文件中。 - Coder Guy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接