vue element项目相关

build
config
src
  --assets
  --components
     --Button
        index.vue
  --layout
    --components
       --Header
          index.vue
    index.vue
  --view
     --login
        index.vue
     --user
         --components
     index.vue
  App.vue
  main.js

components文件里的组件首字母大写
view页面页面文件字母小写
layout主页面布局结构

使用过程遇到的问题处理参考

一.打包后删除页面的console.log

在build文件中的webpack.prod.conf.js中的添加 pure_funcs:['console.log']


image.png
二.配置favicon
  • 开发环境
    编辑webpack.dev.conf.js文件
new HtmlWebpackPlugin({
      filename: 'index.html',
      template: 'index.html',
      favicon:'src/assets/images/favicon.ico',  //添加此行配置favicon的地址
      inject: true
    }),
  • 打包环境
    编辑webpack.prod.conf.js文件
new HtmlWebpackPlugin({
      filename: config.build.index,
      template: 'index.html',
      favicon:'src/assets/images/favicon.ico', //添加此行配置favicon的地址
      inject: true,
      minify: {
        removeComments: true,
        collapseWhitespace: true,
        removeAttributeQuotes: true
        // more options:
        // https://github.com/kangax/html-minifier#options-quick-reference
      },
      // necessary to consistently work with multiple chunks via CommonsChunkPlugin
      chunksSortMode: 'dependency'
    }),
三.不同的开发生产测试环境打包或者运行配置不同的接口IP地址

例如打包正式站,测试站,本地
(1) 安装cross-env

npm install cross-env --save-dev

(2)config文件下修改或添加文件

  • 修改dev.env.js文件(用于运行项目的配置)
'use strict'
const merge = require('webpack-merge')
const prodEnv = require('./prod.env')

module.exports = merge(prodEnv, {
  NODE_ENV: '"dev"',
  BASE_API:'"我是开发环境,我不在这设置API地址"' //本地运行接口API根路径不需要设置此处,每次换地址需要重启不方便
})
  • 修改prod.env.js文件如下
'use strict'
module.exports = {//生产环境---正式站
  NODE_ENV: '"prod"',
  BASE_API:'"http://"', //正式站地址
  DIST_NAME:'prod',//打包文件夹名称
}
  • 添加test.env.js文件如下
'use strict'
module.exports = {//生产环境---测试站
  NODE_ENV: '"test"',
  BASE_API:'"http://"', //测试站地址
  DIST_NAME:'test',//打包文件夹名称
}
  • 添加local.env.jse文件如下
'use strict'
module.exports = {//生产环境--后台人员的本地
  NODE_ENV: '"local"',
  BASE_API:'"http://"',//后台人员本地地址
  DIST_NAME:'local',//打包文件夹名称
}
  • 编辑index.js文件(设置不同环境下的打包文件夹,例如分别是dist/prod,dist/test,dist/local)
//添加此段
var env = require(path.resolve(__dirname,'./'+ process.env.NODE_ENV +'.env'));

 build: {
    index: path.resolve(__dirname, '../dist/'+ env.DIST_NAME +'/index.html'), //修改此处
    assetsRoot: path.resolve(__dirname, '../dist/'+ env.DIST_NAME),//修改此处
    assetsSubDirectory: 'static',
    assetsPublicPath: env.DIST_NAME,//修改此处

(3)编辑build文件下文件

  • 编辑build.js文件
process.env.NODE_ENV = 'production' //删除文件中的此行代码
  • 编辑webpack.prod.conf.js文件
//添加此段
let env=null
if(process.env.NODE_ENV==='prod'){
  env = require('../config/prod.env')
}else if(process.env.NODE_ENV==='test'){
  env = require('../config/test.env')
}else if(process.env.NODE_ENV==='local'){
  env = require('../config/local.env')
}

plugins: [
    new webpack.DefinePlugin({
      'process.env': env //修改此处
    }),

(4)package.json中添加三行

"scripts": {
    "dev": "cross-env NODE_ENV=dev webpack-dev-server --inline --progress --config build/webpack.dev.conf.js", // 添加cross-env NODE_ENV=dev
    "start": "npm run dev",
    "build": "node build/build.js",
    "build:local":"cross-env NODE_ENV=local node build/build.js", //打包本地
    "build:test":"cross-env NODE_ENV=test node build/build.js", //打包测试站
    "build:prod":"cross-env NODE_ENV=prod node build/build.js" //打包正式站
  },

(5)设置接口API的根路径
在src文件夹下新建一个api.config.js文件,内容如下

export const BASE_URL=(()=>{
    let BASE_API=null
    if(process.env.NODE_ENV==='dev'){//运行时随意切换API地址
        BASE_API='http://'  // 后台本地
      // BASE_API='http://'   // 测试站
      //  BASE_API='http://' // 正式站
    }else{ // 打包的相应API地址
        BASE_API=process.env.BASE_API
    }
    return BASE_API
})()

页面调用api接口只需要

import { BASE_URL } from "@/api.config.js";
axios.post(`${BASE_URL}/xxx`,data).then((res)=>{

项目打包命令分别是
npm run build:local
npm run build:test
npm run build:prod

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,921评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,635评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,393评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,836评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,833评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,685评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,043评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,694评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,671评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,670评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,779评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,424评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,027评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,984评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,214评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,108评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,517评论 2 343

推荐阅读更多精彩内容