vue-cli 3 生产环境去除控制台打印

本文详细介绍了Vue CLI 3.0中使用terser-webpack-plugin插件进行代码压缩和优化的具体配置方法,包括如何在vue.config.js中配置以移除警告、console.log和debugger语句。

与vue-cli2.0使用了uglifyjs-webpack-plugin插件进行优化配置不同,vue-cli3.0在打包过程中就使用了terser-webpack-plugin插件进行优化。

具体配置可以参考node_modules/@vue/cli-service/lib/config/prod.js

在 vue.config.js 中的 configureWebpack 选项提供一个对象会被 webpack-merge 合并入最终的 webpack 配置,vue.config.js配置如下:

configureWebpack: config => {
    if (process.env.NODE_ENV === 'production') {
        config.optimization.minimizer[0].options.terserOptions.compress.warnings = false;
        config.optimization.minimizer[0].options.terserOptions.compress.drop_console = true;
        config.optimization.minimizer[0].options.terserOptions.compress.drop_debugger = true;
        config.optimization.minimizer[0].options.terserOptions.compress.pure_funcs = ['console.log'];
    }
  }

ps:

1.terser-webpack-plugin是@vue/cli-service的依赖包之一,所以不需要再次安装;

2.相关代码设置放在配置代码顶部

3.compress相关设置参考:https://github.com/terser/terser#compress-options

<think>好的,用户现在遇到了另一个问题,就是在运行`npm run serve`提示“&#39;vue-cli-service&#39; 不是内部或外部命令”。之前用户遇到了`package.json`找不到的问题,现在这个问题已经解决,但新的错误出现了。我需要分析可能的原因,并提供解决方案。 首先,用户运行的是`mas-creator-admin@0.1.0 serve`脚本,也就是`vue-cli-service serve`。系统找不到这个命令,通常是因为相关的依赖包没有安装。可能的情况是,用户可能在项目中没有安装`@vue/cli-service`,或者安装的路径不对。 接下来,我需要考虑可能的原因。最常见的情况是用户可能刚刚克隆了一个项目,或者手动创建了`package.json`,但没有运行`npm install`来安装依赖项。这候`node_modules`目录不存在,导致无法找到`vue-cli-service`这个可执行文件。另一个可能性是全局安装了Vue CLI,但本地项目中没有安装,而`vue-cli-service`需要在本地依赖中存在才能通过npm脚本运行。 另外,还要检查`package.json`中的依赖项是否正确。可能在`devDependencies`或`dependencies`里是否有`@vue/cli-service`的条目。如果用户手动修改了`package.json`,可能会遗漏某些依赖。 然后,我需要给出分步的解决方案。第一步肯定是建议用户运行`npm install`来安装所有依赖。如果安装后问题依旧,可能需要检查是否确实安装了`@vue/cli-service`,如果没有,则需要单独安装它,比如`npm install @vue/cli-service --save-dev`。此外,也要检查全局安装的情况,但通常npm脚本会使用本地安装的包,所以可能和全局关系不大。 还要考虑缓存的问题,有候node_modules的缓存可能导致问题,可能需要清除npm缓存后再重新安装。或者,检查node_modules目录是否存在,如果存在但损坏了,可能需要删除后重新安装。 另外,路径中的空格或特殊字符也可能导致问题,不过根据之前的路径来看,用户的路径是正常的,没有特殊字符,所以可能性较低。还有可能是文件权限问题,但之前的问题已经处理过权限,所以暂先不考虑。 用户可能不太清楚本地和全局安装的区别,需要解释清楚。例如,即使全局安装了Vue CLI,本地项目还是需要`@vue/cli-service`作为开发依赖,因为npm脚本会引用本地node_modules中的可执行文件。 最后,需要给出验证步骤,比如检查node_modules目录是否存在,查看`vue-cli-service`是否在.bin目录下,然后再次运行命令。如果还是有问题,可能需要更深入的排查,比如node和npm的版本是否兼容,或者是否有其他配置问题。 总结,用户的问题主要是因为缺少依赖,解决方案是安装依赖,或者修复package.json后重新安装。</think>--- ### **错误原因分析** 您遇到的 `&#39;vue-cli-service&#39; 不是内部或外部命令` 错误表明 **项目依赖未正确安装**,导致系统无法找到 Vue CLI 的核心工具。具体原因可能是: | 原因 | 典型场景 | |----------------------|--------------------------------------------------------------------------------------------| | **依赖未安装** | 未执行 `npm install`,导致 `node_modules` 缺失 | | **全局/本地安装混淆** | 仅在全局安装了 Vue CLI,但项目本地未安装 `@vue/cli-service` | | **依赖损坏** | `node_modules` 或 `package-lock.json` 异常导致依赖不完整 | | **路径权限问题** | 系统权限限制导致依赖安装失败 | --- ### **分步解决方案** #### **步骤 1:安装项目依赖** 在项目根目录(含 `package.json` 的目录)执行: ```powershell # 强制清空缓存并重新安装依赖(推荐) npm cache clean --force npm install ``` -控制台显示 `added X packages` 表示安装成功 - 若失败,检查网络代理或切换 npm 镜像源: ```powershell npm config set registry https://registry.npmmirror.com ``` #### **步骤 2:验证 @vue/cli-service 存在** 检查 `package.json` 的 `devDependencies` 是否包含 `@vue/cli-service`: ```json { "devDependencies": { "@vue/cli-service": "^5.0.8" // 版本号可能不同 } } ``` - 若缺失,手动安装: ```powershell npm install @vue/cli-service --save-dev ``` #### **步骤 3:检查 node_modules 完整性** 验证 `vue-cli-service` 可执行文件是否存在: ```powershell # 查看本地依赖中的 vue-cli-service ls node_modules/.bin/vue-cli-service* ``` - 正常应显示 `.cmd` 和无后缀的两个文件 - 若缺失,删除 `node_modules` 和 `package-lock.json` 后重装: ```powershell rm -rf node_modules package-lock.json npm install ``` #### **步骤 4:修复全局依赖冲突** 若同存在全局和本地 Vue CLI,建议: 1. 卸载全局版本: ```powershell npm uninstall -g @vue/cli ``` 2. 确保本地版本正确: ```powershell npx vue-cli-service --version ``` --- ### **特殊场景处理** #### **情况 1:项目从 Git 克隆后首次运行** 1. 确保已进入正确目录: ```powershell cd D:\Code\Java\Your-Project-Path ``` 2. 执行完整初始化流程: ```powershell npm install npm audit fix # 可选:修复安全警告 ``` #### **情况 2:Node.js 版本不兼容** Vue CLI 5.x 需要 Node.js ≥ v14.18.0 通过以下命令检查版本: ```powershell node -v ``` - 若版本过低: 1. 使用 [nvm-windows](https://github.com/coreybutler/nvm-windows) 管理多版本 2. 安装推荐版本: ```powershell nvm install 14.19.0 nvm use 14.19.0 ``` #### **情况 3:系统路径含特殊字符** 若项目路径包含 `()` 等符号,建议迁移到纯英文路径: ```powershell # 错误示例路径 D:\Code(Vue)\project # 含括号 # 正确路径 D:\VueProjects\demo ``` --- ### **操作验证** 执行以下命令验证修复结果: ```powershell # 查看本地 vue-cli-service 版本 npx vue-cli-service --version # 运行项目 npm run serve ``` 正常应输出: ``` > mas-creator-admin@0.1.0 serve > vue-cli-service serve INFO Starting development server... ``` --- ### **预防措施** 1. **锁定依赖版本** 在 `package.json` 中使用固定版本号: ```json "devDependencies": { "@vue/cli-service": "5.0.8" // 去掉 ^ 符号 } ``` 2. **使用 CI/CD 工具** 添加依赖缓存配置(如 GitHub Actions): ```yaml - name: Cache node_modules uses: actions/cache@v3 with: path: node_modules key: ${{ runner.os }}-npm-${{ hashFiles(&#39;package-lock.json&#39;) }} ``` 3. **添加环境检查脚本** 在 `package.json` 中添加预检命令: ```json "scripts": { "prestart": "node -v && npm -v && npx vue-cli-service --version" } ``` --- ### **技术原理** - **npm scripts 执行机制** 当运行 `npm run serve` ,npm 会在 `node_modules/.bin` 目录下查找 `vue-cli-service` 可执行文件。 若该文件缺失,则抛出 `command not found` 错误。 - **npx 的作用** 使用 `npx vue-cli-service` 会优先查找本地依赖,若未找到则尝试下载临包,确保命令可执行。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值