vue2搭建项目流程以及简单配置

1. 下载脚手架

// 在终端中输入以下命令进行全局安装:
npm install -g @vue/cli
创建脚手架.png

2. 创建项目名

// 在项目的目录下打开终端创建
// vue create 【你的项目名称】
vue create appliction
创建XX项目.png

3. 创建项目配置(PgUp/PgDn 键上下切换更改选项,回车确定成功)

(1)手动选择安装
配置1.png
(2)根据自己的需求选择
配置2.png
(3)选择vue版本
配置3.png
(4)选择代码检测时的工具
配置4.png
(5)选择检测时机(保存时检测)
配置5.png
(6)如何存放配置(独立文件存放)
配置6.png
(7)可以将当前创建项目配置作为一个模板方便下次直接使用
配置7.png

保存当前预设为......(下次创建项目可以当作模板创建):
配置8.png

4. vue项目就创建完成了

完成创建.png

5. 配置简介

(1)router配置
router依赖下载.png
// router--》 index.js配置
import Vue from 'vue'
import VueRouter from 'vue-router'
import AboutView from '../views/AboutView.vue'
Vue.use(VueRouter)
const routes = [
  {
    path: '/',
    name: 'home',
    component: AboutView
  }
]
const router = new VueRouter({
  mode: 'history',
  base: process.env.BASE_URL,
  routes
})
export default router
(2)axios配置
axios依赖.png
import axios from 'axios'
axios.defaults.headers['Content-Type'] = 'application/json;charset=utf-8'
// 创建axios实例
const service = axios.create({
  // axios中请求配置有baseURL选项,表示请求URL公共部分
  baseURL: process.env.VUE_APP_BASE_API + '/appliction',
  // 超时
  timeout: 3000
})
// request拦截器
service.interceptors.request.use(config => {
   return config
 }, error => {
   console.log(error)
   Promise.reject(error)
})
// 响应拦截器
service.interceptors.response.use(res => {
  // 未设置状态码则默认成功状态
  const code = res.data.code || '000000'
  return code
}, error => {
  console.log('err' + error)
})
export default service
(3)vuex依赖
vuex依赖.png
import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
export default new Vuex.Store({
  modules: {},
  state: {
    epfFlowId: ''
  },
  mutations: {
    epfFlowIdData (state, id) {
      state.epfFlowId = id
    }
  },
  actions: {}
})
(4)下载完后在main.js文件的配置
main.js.png
(5)API 接口请求
import request from '@/utils/request'
// 请求接口
export function fun(data) {
  return request({
    method: 'post',
    url: 'url路径',
    data: {
      ...data // 入参
    }
  })
}
(6)环境配置

创建文件.env.development, .env.production文件分别配置对应环境的环境变量:
.env.development文件:

# 开发环境配置
ENV = 'development'
# 开发环境
# baseURL
VUE_APP_BASE_API = 'http://47.103.69.49:8080'
# 路由懒加载
VUE_CLI_BABEL_TRANSPILE_MODULES = true

.env.production文件:

# 生产环境配置
ENV = 'production'
# 生产环境
# baseURL
VUE_APP_BASE_API = 'http://113.106.84.20:8443'

package.json配置:

"scripts": {
  "build-development": "vue-cli-service build --mode development",
  "build-production": "vue-cli-service build --mode production",
}

App.vue打印验证是否拿到数据:

<script>
export default {
  mounted () {
    console.log(process.env, '环境变量')
    console.log(process.env.VUE_APP_BASE_API, '生产环境变量')
  }
}
</script>
(7)vue.config.js配置
const { defineConfig } = require('@vue/cli-service')

module.exports = defineConfig({
  // 项目部署的基本路径,默认 '/'
  publicPath: process.env.NODE_ENV === 'production' ? './' : '/',
  // 项目打包的根目录,默认 'dist'
  outputDir: 'dist',
  // 项目打包的静态资源存放目录,默认 '
  assetsDir: '',
  // 项目打包的index.html输出路径,默认 'index.html'
  indexPath: 'index.html',
  // 多页应用配置参数,默认 undefined
  pages: undefined,
  // 开发环境 eslint 异常信息提示位置,默认 'default' 在浏览器窗口提示,为 true 在控制台提示
  lintOnSave: 'default',
  // 项目打包是否生成js的 source map 调试包,默认 true,生产部署设置为false
  productionSourceMap: false,
  // css 配置
  css: {
    // 是否将组件中的 CSS 提取至一个独立的 CSS 文件中、生产环境下默认 true,开发环境下默认 false
    extract: true,
    // 是否开启 css 的 source map 调试,默认 false
    sourceMap: false,
    // 配置css的loader选项:css-loader、postcss-loader、less-loader、sass-loader,stylus-loader,默认 {}
    loaderOptions: {}
  },
  // devServer 支持 webpack-dev-server 所有选项
  devServer: {
    open: true,
    host: 'localhost',
    port: 8080,
    hot: true,
    https: false,
    proxy: {
      '/api': {
        target: process.env.VUE_APP_BASE_API + '/appliction', // 后端服务域名
        secure: false, // 是否支持 https,默认 false
        ws: true, // 是否支持 websocket
        changeOrigin: true, // 是否支持跨域
        pathRewrite: {
          '^/': '/' // 路径片段重写
        }
      }
    }
  },
  // 插件配置选项
  pluginOptions: {
    foo: {
      // 插件可以作为 `options.pluginOptions.foo` 访问这些选项。
    }
  },
  // babel-loader 是否处理 node_modules 中的依赖包,处理哪些依赖包,参数类型: boolean | Array<string | RegExp>
  transpileDependencies: true
})
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 162,825评论 4 377
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 68,887评论 2 308
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 112,425评论 0 255
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,801评论 0 224
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 53,252评论 3 299
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 41,089评论 1 226
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 32,216评论 2 322
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 31,005评论 0 215
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,747评论 1 250
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,883评论 2 255
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,354评论 1 265
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,694评论 3 265
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,406评论 3 246
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,222评论 0 9
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,996评论 0 201
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 36,242评论 2 287
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 36,017评论 2 281

推荐阅读更多精彩内容