'use strict' require('./check-versions')() process.env.NODE_ENV = 'production' const ora = require('ora') const rm = require('rimraf') const path = require('path') const chalk = require('chalk') const webpack = require('webpack') const config = require('../config') const webpackConfig = require('./webpack.prod.conf') const spinner = ora('building for production...') spinner.start() rm(path.join(config.build.assetsRoot, config.build.assetsSubDirectory), err => { if (err) throw err webpack(webpackConfig, (err, stats) => { spinner.stop() if (err) throw err process.stdout.write(stats.toString({ colors: true, modules: false, children: false, // If you are using ts-loader, setting this to true will make TypeScript errors show up during build. chunks: false, chunkModules: false }) + '\n\n') if (stats.hasErrors()) { console.log(chalk.red(' Build failed with errors.\n')) process.exit(1) } console.log(chalk.cyan(' Build complete.\n')) console.log(chalk.yellow( ' Tip: built files are meant to be served over an HTTP server.\n' + ' Opening index.html over file:// won\'t work.\n' )) }) })
时间: 2024-03-14 16:49:50 浏览: 23
这段代码是一个 Node.js 脚本,用于构建生产环境的前端代码。主要的执行步骤如下:
1. 引入必要的依赖模块,如 ora、rimraf、path、chalk、webpack 等。
2. 执行 check-versions.js 脚本,检查 Node.js 和 npm 的版本是否符合要求。
3. 设置环境变量 NODE_ENV 为 production。
4. 使用 ora 模块创建一个进度提示符号,提示正在构建生产环境的代码。
5. 删除之前构建的产物目录,即 config.build.assetsRoot 下的 config.build.assetsSubDirectory 目录。
6. 使用 webpack 模块根据 webpack.prod.conf.js 配置文件进行打包构建。
7. 打印构建结果到控制台,如果构建过程出现错误则抛出异常。
8. 根据构建结果判断构建是否成功,如果出现错误则输出错误信息并退出进程,否则输出构建成功信息和使用提示。
相关问题
process.env.NODE_ENV测试环境
process.env.NODE_ENV测试环境的配置可以按照以下步骤进行:
1. 找到build.js文件,将`process.env.NODE_ENV = 'production'`注释掉。
2. 找到webpack.prod.conf.js文件,将`const env = require('../config/prod.env')`修改成动态的`const env = require(`../config/${process.env.NODE_ENV}.env`)`。
3. 在config文件夹中添加test.env.js文件,并在文件中添加以下内容:
```
'use strict'
module.exports = {
NODE_ENV: '"test"'
}
```
4. 安装cross-env模块,因为node没有这个模块,需要运行`npm install --save-dev cross-env`进行安装。
5. 找到package.json文件,修改"scripts"部分如下:
```
"scripts": {
"dev": "cross-env NODE_ENV=development webpack-dev-server --host 0.0.0.0 --inline --progress --config build/webpack.dev.conf.js",
"start": "npm run dev",
"test": "cross-env NODE_ENV=test node build/build.js",
"build": "cross-env NODE_ENV=production node build/build.js"
}
```
完成以上步骤后,你就可以使用`npm run test`来在测试环境中使用代码打包了。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *3* [vue测试环境、正式环境、本地环境 process.env.NODE_ENV](https://blog.csdn.net/sinat_41549289/article/details/116997677)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
- *2* [深入理解webpack process.env.NODE_ENV配置](https://download.csdn.net/download/weixin_38515897/13131654)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
'use strict' const merge = require('webpack-merge') const prodEnv = require('./prod.env') module.exports = merge(prodEnv, { NODE_ENV: '"development"', OPEN_PROXY: false // 是否开启代理, 重置后需重启vue-cli })
这是一个使用了严格模式的 Node.js 模块,其中包含了一个导出对象,该对象是将生产环境配置和开发环境配置合并后的结果。其中,NODE_ENV 被设置为 "development",OPEN_PROXY 被设置为 false,表示是否开启代理。如果你要重置 OPEN_PROXY 的值,需要重启 vue-cli。