'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-15 07:42:13 浏览: 16
这是一个 Node.js 脚本文件,用于打包编译生产环境的前端代码。主要步骤如下:
1. 引入必要的模块和插件,包括 ora、rimraf、path、chalk、webpack 等。
2. 设置环境变量 NODE_ENV 为 'production'。
3. 启动 ora 插件,显示一个进度条,提示正在进行生产打包。
4. 使用 rimraf 模块删除之前打包过的文件夹,防止旧文件对新打包的文件造成影响。
5. 使用 webpack 对前端代码进行打包编译,使用的是 webpack.prod.conf.js 配置文件。
6. 打印出 webpack 打包编译的结果信息,如果编译出错则提示错误信息并退出。
7. 如果编译成功,则提示编译完成,同时提醒用户生产环境打包出的文件需要通过 HTTP 服务器访问,不能直接通过 file:// 协议打开。
相关问题
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。