vue-cli创建的vue项目在命令行中运行npm run build打包出来还是开发模式的问题

最近开发了一个项目,在使用 npm run build 打包后,发现大小有点不对劲,打开一看发现这些代码并没有启用压缩,还是原来开发模式结构的代码。

在这里插入图片描述
就算加了 --mode production 参数还是这样

在这里插入图片描述
然后我在 vue-cli 官网 vue-cli官网说明 找到了这个提示:

NODE_ENV
如果在环境中有默认的 NODE_ENV,你应该移除它或在运行 vue-cli-service 命令的时候明确地设置 NODE_ENV。

我这就想起了,原来是我在自己电脑环境配置了 NODE_ENV=development 导致打包一直都是开发模式的代码

在这里插入图片描述
解决办法也很简单就是把它删除掉或者运行命令时明确的设置 NODE_ENV,我需要保留这个环境变量配置,因为我有其他项目需要依赖它。

如果这样的话,我们总不能每次 npm run build 都来这配置一下为 production 吧?这样太麻烦了。

这里介绍一个 cross-env 工具,cross-env 是一个流行的 npm 包,用于在跨平台(如 Windows、Linux 和 macOS)环境中设置和使用环境变量。它允许你以一致的方式在 npm 脚本中设置环境变量,而不需要担心不同操作系统之间的命令行差异。

简单来说就是在运行 npm 脚本时可以设置一个临时的环境变量,有了它,我们只需要一个简单的命令就可以解决了

安装 npm i cross-env -D,然后在 package.json 中修改 scripts.buildcross-env NODE_ENV=production vue-cli-service build ,然后在命令行窗口运行 npm run build 就可以了

注意:如果在打开命令行窗口中安装 cross-env 一定要关闭这个窗口重新打开,因为 windows 加载新命令都需要关闭重新打开才能生效

最后运行 npm run build 结果:

在这里插入图片描述
打印 process.env.NODE_ENV 也能够正常打印 production

在这里插入图片描述

最后总结:要么删除本地电脑环境的 NODE_ENV,或者运行时明确指定 NODE_ENV,如果嫌弃麻烦可以借助 cross-env 工具解决。

### 解决 `npm run build` 报 `vue-cli-service Permission denied` 错误 对于遇到的 `vue-cli-service: Permission denied` 错误,在执行 `npm run build` 命令时,可以采取如下措施来解决问题。 #### 修改文件权限 进入前端工程项目目录下,即包含 `node_modules` 文件夹的位置。通过修改特定脚本文件的权限设置,允许其被执行: ```bash chmod 777 node_modules/.bin/vue-cli-service ``` 此命令赋予了 `vue-cli-service` 脚本完全控制权限,从而解决了由于权限不足而无法启动服务的问题[^1]。 #### 清理并重装依赖包 有时本地缓存或已安装模块存在问题也可能引发此类错误。建议先清理旧有的依赖项再重新安装它们: ```bash rm -rf node_modules package-lock.json npm cache clean --force npm install ``` 上述操作会移除现有的 `node_modules` 及锁定文件,并强制清除 npm 缓存,最后重新拉取所有必要的库和工具[^3]。 #### 使用节点版本管理器 (NVM) 如果仍然存在权限方面的问题,则考虑借助 NVM(Node Version Manager)来进行环境配置。这有助于绕过系统级别的权限障碍以及更好地管理不同项目所需的 Node.js 版本: - 安装最新稳定版 Node.jsnpm- 不必卸载现有版本即可切换至新版本; - 自动调整全局路径以适应新的开发需求。 #### 验证解决方案有效性 完成以上任一处理方式之后,请再次尝试运行构建指令验证问题是否得到妥善解决: ```bash npm run build ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值