美文网首页
vue element项目相关

vue element项目相关

作者: 夏晶晶绿 | 来源:发表于2019-08-07 13:59 被阅读0次
    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

    相关文章

      网友评论

          本文标题:vue element项目相关

          本文链接:https://www.haomeiwen.com/subject/uqcodctx.html