在我接手的一个继承项目中,我尝试将构建命令生成除Production
以外的版本。
我已经尝试更改package.json
中script
部分的别名,传入额外的变量,例如--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
。
你有什么想法?
"build:dev": "SET NODE_ENV=dev npm run build --dev --configuration=dev && react-scripts build"
,即在NODE_ENV
前面添加SET
。 - walNODE_ENV
不会影响它,无论是使用env NODE_ENV
,在运行构建之前调用export NODE_ENV=dev
,还是将其放入.env
文件中。 - Coder Guy