VUE3.0 二. vue-cli3配置指南

一.vue.config.js 详解

官网地址: https://cli.vuejs.org/zh/config/

使用vue3 的时候需要添加一个vue.config.js

const path = require('path');
module.exports = {// 基本路径publicPath: process.env.NODE_ENV === 'production' ? '' : '/',// 输出文件目录outputDir: process.env.NODE_ENV === 'production' ? 'dist' : 'devdist',// eslint-loader 是否在保存的时候检查lintOnSave: true,/*** webpack配置,see https://github.com/vuejs/vue-cli/blob/dev/docs/webpack.md**/chainWebpack: (config) => {},configureWebpack: (config) => {// config.resolve = { // 配置解析别名//   extensions: ['.js', '.json', '.vue'],//   alias: {//     '@': path.resolve(__dirname, './src'),//     'public': path.resolve(__dirname, './public'),//     'components': path.resolve(__dirname, './src/components'),//     'common': path.resolve(__dirname, './src/common'),//     'api': path.resolve(__dirname, './src/api'),//     'views': path.resolve(__dirname, './src/views'),//     'data': path.resolve(__dirname, './src/data')//   }// }},// 生产环境是否生成 sourceMap 文件productionSourceMap: false,// css相关配置css: {// 是否使用css分离插件 ExtractTextPluginextract: true,// 开启 CSS source maps?sourceMap: false,// css预设器配置项loaderOptions: {},// 启用 CSS modules for all css / pre-processor files.modules: false},// use thread-loader for babel & TS in production build// enabled by default if the machine has more than 1 coresparallel: require('os').cpus().length > 1,/***  PWA 插件相关配置,see https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-pwa*/pwa: {},// webpack-dev-server 相关配置devServer: {open: false, // 编译完成是否打开网页host: '0.0.0.0', // 指定使用地址,默认localhost,0.0.0.0代表可以被外界访问port: 8080, // 访问端口https: false, // 编译失败时刷新页面hot: true, // 开启热加载hotOnly: false,proxy: null, // 设置代理overlay: { // 全屏模式下是否显示脚本错误warnings: true,errors: true},before: app => {}},/*** 第三方插件配置*/pluginOptions: {}
}

跨域以及html,css以及其他的webpack模块设置在vue.config.js中进行设置。具体的参数配置请参考官网。

二.项目结构以及配置说明:

以项目 harry-vue为例:项目地址

这里的dist、package.json、.env.development、.env.production、.env.staging、vue.config.js环境变量和模式等所需要的文件。我们简单的了解一下

项目中,分为开发环境和生产环境,如果每次都去做更改,就很麻烦,所以这里要根据不同的脚本区分不同的环境模式

官网:1 .env  在所有的环境中被载入
2 .env.local 在所有的环境中被载入,但会被 git 忽略
3 .env.[mode] 只在指定的模式中被载入
4 .env.[mode].local 只在指定的模式中被载入,但会被 git 忽略

在根目录新建文件,文件的格式为 .env.mode 分三个环境两个打包环境一个开发环境,具体看自己项目需求而定

.env.development 文件,该文件是平时开发所用
# just a flag
ENV = 'development'# base api
VUE_APP_BASE_API = 'api'
#(这里这样设置的目的是在开发中一般要设置跨域,这样设置,在axios请求的时候就无需方法名前加/api/,因为下面会设置默认的/api/)# vue-cli使用VUE_CLI_BABEL_TRANSPILE_MODULES环境变量,
# 控制是否启用babel-plugin-dynamic-import-node插件。
# 它只能通过将所有import()转换为require()来做一件事。
# 此配置可以显着提高热更新的速度,
# 当您有大量页面时。
# 详细信息:https://github.com/vuejs/vue-cli/blob/dev/packages/@vue/babel-preset-app/index.jsVUE_CLI_BABEL_TRANSPILE_MODULES = true
.env.production 文件是生产正式环境所用的
# just a flag
ENV = 'production'# base api
VUE_APP_BASE_API = '/prod-api'
.env.staging 文件是生产环境演示所用
NODE_ENV = production# just a flag
ENV = 'staging'# base api
VUE_APP_BASE_API = '/stage-api'

只有以 VUE_APP_ 开头的变量会被 webpack.DefinePlugin 静态嵌入到客户端侧的包中。你可以在应用的代码中这样访问它们
然后package.json文件scripts中添加该运行和打包脚本:

  "scripts": {"dev": "vue-cli-service serve","build:prod": "vue-cli-service build","build:stage": "vue-cli-service build --mode staging","preview": "node build/index.js --preview","lint": "eslint --ext .js,.vue src","test:unit": "jest --clearCache && vue-cli-service test:unit","test:ci": "npm run lint && npm run test:unit","svgo": "svgo -f src/icons/svg --config=src/icons/svgo.yml"}
用法:vue-cli-service serve [options] [entry]
用法:vue-cli-service serve [options] [entry]
选项:–open 在服务器启动时打开浏览器–copy 在服务器启动时将 URL 复制到剪切版–mode 指定环境模式 (默认值:development)–host 指定 host (默认值:0.0.0.0)–port 指定 port (默认值:8080)–https 使用 https (默认值:false)
用法:vue-cli-service build [options] [entry|pattern]
用法:vue-cli-service build [options] [entry|pattern]
选项:–mode 指定环境模式 (默认值:production)–dest 指定输出目录 (默认值:dist)–modern 面向现代浏览器带自动回退地构建应用–target app | lib | wc | wc-async (默认值:app)–name 库或 Web Components 模式下的名字 (默认值:package.json 中的 “name” 字段或入口文件名)–no-clean 在构建项目之前不清除目标目录–report 生成 report.html 以帮助分析包内容–report-json 生成 report.json 以帮助分析包内容–watch 监听文件变化

其中的mode 就是指的是哪个环境,serve 默认的是development 在这里指的就是development环境(就是文件名.env后面的development,不是文件中的代码环境VUE_APP_ENV这个是自定义用于代码中判断所用。因为项目中文件名就是【.env.development】,所以scripts中忽略了)
build默认的是production,指的就是production环境,同理也是文件名【.env.后缀】

这样在实际项目中在main.js中直接设置其默认地址即可,会自动设置不同的地址

axios.defaults.baseURL = process.env.VUE_APP_BASE_URL;

验证的时候到了
在main.js中打印process.env

npm run  dev


可以看到.env.development中的数据被打印出来

VUE3.0 二. vue-cli3 配置指南相关推荐

  1. 【Vue2.0】—Vue脚手架配置代理(二十二)

    [Vue2.0]-Vue脚手架配置代理(二十二) 方法一 方法二

  2. vue cli3 配置sass全局变量设置不生效,sass混合器文件全局引入

    vue cli3 配置sass全局变量的问题 首先确保依赖安装完整 找到vue.config.js加入配置信息 首先确保依赖安装完整 1.node-sass 2.sass-loader 3.style ...

  3. vue/cli3 配置vux

    安装各插件 试过 安装"必须安装"的部分亦可 1.安装vuex npm install vuex --save-dev 2.在项目里面安装vux[必须安装] npm install ...

  4. vue3.0 使用vue脚手架生成vue项目 运行mapbox 3D地图例子

    一.脚手架生成vue项目 1.安装脚手架:npm install -g @vue/cli 2.以图形界面创建vue项目 https://cli.vuejs.org/zh/guide/creating- ...

  5. Vue cli3配置生产环境,开发环境,和测试环境

    目录 1.先在package.json文件中添加: 2.在项目目录下建立 .env文件和.env.test文件 3.配置api变量      3.1.配置axios的baseURL路径      3. ...

  6. vue cli3 配置上线 本地图标转换base64 显示

    chainWebpack: config => {config.module.rule('images').use('url-loader').loader('url-loader').tap( ...

  7. 如何搭建一个完整的Vue3.0 + ts 的项目

    如何搭建一个完整的Vue3.0 + ts 的项目 相信9月18日尤大大的关于Vue3.0的发表演讲大家一定有所关注,现在Vue3.0 也已经进入RC阶段(最终产品的候选版本,如果没有问题则可发布成为正 ...

  8. Vue3 —— 创建 Vue3.0 工程

    系列文章目录 内容 参考链接 Vue3 创建 Vue3.0 工程 Vue3 - Composition API(零) setup函数.ref函数.reactive函数.响应式.reactive对比re ...

  9. 基于Vue3.0+Springboot在线购物商城网站设计

    开发技术环境: Idea + Vscode + Mysql + Springboot + vue3.0 基于vue的购物商城网站分为前台功能和后台管理功能,前台功能主要包括基础功能模块.订单管理模块. ...

最新文章

  1. 【Flutter】屏幕像素适配方案 ( flutter_screenutil 插件 )
  2. 5、python学习之变量
  3. [JavaME]解决来电问题(Incoming Call)
  4. openlayers入门开发系列之地图属性查询篇
  5. no protocol specified
  6. JDK Bug系统浪费时间
  7. java网络编程与分布式计算_Java网络编程与分布式计算
  8. ARM处理器工作模式
  9. js数组往队头添加数据、js数组从队头移出数据
  10. 【Linux】【MySQL】CentOS7安装最新版MySQL8.0.13(最新版MySQL从安装到运行)
  11. 台式计算机视频设备打不开,电脑视频设备被占用未能创建视频预览怎么办
  12. redis thinkphp mysql_Thinkphp5怎么扩展Redis数据库,实现Redis的CURD操作
  13. MongoDB:MapReduce基础及实例
  14. ARTIF:实时威胁智能识别框架
  15. 本地数据库环境搭建(PhpStudy)
  16. SQLServer安装时哪些功能是必需的(sql server 2016安装时选择哪些功能)
  17. 用计算机探究规律的教学反思,《找规律》教学反思(精选11篇)
  18. 忘记压缩包密码 python 暴力破解rar密码
  19. 人工智能是否会改写商业规则
  20. 阴阳师ios和android,《阴阳师》App Store表现优异,安卓苹果惊喜同服

热门文章

  1. guid linux 识别的分区表_Linux系统MBR和GPT分区的区别介绍
  2. 华为鸿蒙vivo,华为鸿蒙成功的关键:要让小米、OPPO、VIVO都用上鸿蒙
  3. 查看当前svn账户_SVN-基础教程学习
  4. 使用 Gatsby.js 搭建静态博客 EX 使用语雀发布到博客
  5. 十分钟完成Bash 脚本进阶!列举Bash经典用法及其案例
  6. jquery带token访问接口ajax
  7. iOS 提高tableView 性能的优化
  8. Java_spark简单例子
  9. Android--UI之ImageView
  10. 借助队列解决Josephus问题