NPM Run Build 总是构建生产而不是开发

Posted

技术标签:

【中文标题】NPM Run Build 总是构建生产而不是开发【英文标题】:NPM Run Build Always Builds Production and Never Development 【发布时间】:2019-08-01 05:46:42 【问题描述】:

在我拥有的继承项目中,我正在尝试获取构建命令来构建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'

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

想法?

【问题讨论】:

【参考方案1】:

你需要设置环境。变量,就像你在调用构建命令之前在“开始”中所做的那样。

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

【讨论】:

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

以上是关于NPM Run Build 总是构建生产而不是开发的主要内容,如果未能解决你的问题,请参考以下文章

vue-cli构建项目 npm run build后应该怎么运行在本地查看效果

NextJS 自定义服务器在使用“npm run build”构建后出现 CORS 错误

npm run build 不会在 elasticbeanstalk 上创建构建目录

运行“npm run build”需要啥?

命令“npm run build”没有在 VueJS 项目上创建正确的构建

运行 npm run build 时出现构建错误