vue+webpack多环境打包配置

我是用的vue-cli快速生成的项目结构,故下文以此为基础:

1、config/prod.env.js

// 原来代码
'use strict'
module.exports = {
  NODE_ENV: '"production"'
}
// 修改后代码
'use strict'
module.exports = {
  NODE_ENV: '"production"',
  ENV_CONFIG: '"http://生产环境用到的地址"'  // 新增
  // ENV_CONFIG:自己定义即可,后面在页面种如果用到 也是这个名称
}

2、config/test.env.js

// 原代码
'use strict'
const merge = require('webpack-merge')
const devEnv = require('./dev.env')

module.exports = merge(devEnv, {
  NODE_ENV: '"testing"'
})
// 修改后代码
'use strict'
const merge = require('webpack-merge')
const devEnv = require('./dev.env')

module.exports = merge(devEnv, {
  NODE_ENV: '"testing"',
  ENV_CONFIG: '"http://39.108.167.173:9950"' // 新增
})

3、build/webpack.prod.conf.js

// 原代码
const env = require('../config/prod.env')
// 修改后代码
// 注释掉 const env = require('../config/prod.env') 
const env = config.build[process.env.env_config+'Env'] // 新增

4、build/build.js

// 原代码
const spinner = ora('building for production...')

spinner.start()
// 修改后代码
const spinner = ora('building for' + process.env.NODE_ENV + 'of' + process.env.ENV_CONFIG + 'mode...') 
// 新增 'ENV_CONFIG '即是我们在config/prod.conf.js-test.conf.js下,我们定义的路径名称

spinner.start()

5、config/index.js 的build下

// 原代码
build: {
    // Template for index.html
    index: path.resolve(__dirname, '../dist/index.html'),
// 修改后的代码
build: {
    testEnv: require('./test.env'), //新增
    prodEnv: require('./prod.env'), //新增
    // Template for index.html
    index: path.resolve(__dirname, '../dist/index.html'),

6、build/webpack.base.conf.js 下的output

 // 原代码
 output: {
  path: config.build.assetsRoot,
  filename: '[name].js',
  publicPath: process.env.NODE_ENV === 'production'
    ? config.build.assetsPublicPath
    : config.dev.assetsPublicPath
}


// 修改后的代码
output: {
    path: config.build.assetsRoot,
    filename: '[name].js',
    publicPath: process.env.NODE_ENV === 'production'
      ? config.build.assetsPublicPath
      : (process.env.NODE_ENV === 'testing' ? config.build.assetsPublicPath : config.dev.assetsPublicPath) //增加判断
  },

7、package.json 下的scripts

"scripts": {
	// 新增
	"build:test": "cross-env NODE_ENV=testing ENV_CONFIG=test node build/build.js", 
	// 新增
    "build:prod": "cross-env NODE_ENV=production ENV_CONFIG=prod node build/build.js"
}

8、安装cross-env,npm i --save-dev cross-env【cross-env能跨平台地设置及使用环境变量】

完成以上配置后,就可以用 npm run build:testnpm run build:prod进行不同环境的打包;在页面可以通过process.env.ENV_CONFIG获取到所配置的参数,但是注意ENV_CONFIG
是我们自己起的名字,前后以及在使用过程中,一定要注意一致,反正我是踩坑了【笑哭】

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue + Webpack多页/单页脚手架是一种用于构建Vue.js项目的工具。Vue.js是一个用于构建用户界面的JavaScript框架,而Webpack是一个模块打包工具。 多页/单页脚手架可以根据项目的需求选择构建方式。多页应用指的是每个页面都有自己的HTML文件,而单页应用则是只有一个HTML文件。在多页脚手架中,每个页面都有自己的入口文件和模板文件,Webpack会根据入口文件将各个页面的代码打包成独立的文件。这种方式适用于需要多个独立页面的项目。 而在单页脚手架中,只有一个HTML文件和一个入口文件。所有的页面内容都是通过Vue的路由机制来进行渲染和切换。这种方式适用于更复杂的单页应用,其中页面之间的切换是通过异步加载和前端路由来实现。 使用Vue + Webpack多页/单页脚手架的优点括: 1. 灵活性:可以根据项目需求选择多页或单页应用方式。 2. 开发效率:脚手架提供了一套默认的配置,可以使开发者更快速地开始项目开发。 3. 模块化:使用Webpack打包模块,使得代码更易于管理和维护。 4. 热更新:脚手架支持热更新,可以在开发过程中实时看到修改的效果。 5. 生态系统:Vue.js和Webpack都有庞大的社区支持,可以方便地找到资料和解决问题。 总结起来,Vue + Webpack多页/单页脚手架是一种方便的工具,可以根据项目需求选择适合的构建方式,并提供了一系列的开发工具和优化配置,使开发更高效、更方便。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值