• 封装组件发布到npm上,项目中可以npm install ,使用vue+wwebpack+dotenv搭建项目,.env配置多个环境.这套命令主要是为了封装npm组件(不同环境也许用不到),最简单的搭建没有冗余的代码和依赖(第一步)


    第一步搭建项目

    vue init webpack-simple 项目名称

    第二步安装dotenv(如果不需要配置不同环境这一步就结束了)

    npm install dotenv --save

    第三步添加多环境的配置文件 测试环境,开发环境,线上环境

     这三个文件中各填写你想要配置的环境的变量和参数

    # 开发环境配置
    ENV = 'development'
    
    #域名地址
    VUE_APP_URL = 'http://t.itwobyte.com:8081'
    

      

    第四步,重点了,怎么让.env文件注入呢,webpack是不支持的,这就得搭配dotenv插件来完成

    var path = require('path')
    var fs = require('fs')
    var webpack = require('webpack');
    var dotenv=require('dotenv');
    // 加载.env*文件 默认加载.env文件
    var PROJECT_PATH = path.resolve(__dirname, "./");
    const dotenvFile = path.resolve(PROJECT_PATH, `./.env.${process.env.NODE_ENV}`);//获取相关命令的.env环境的路径
    dotenv.config({path: fs.existsSync(dotenvFile)? dotenvFile: resolve(PROJECT_PATH, `./.env`),});//注入文件
    

      

    第五步,不同环境掉后端接口不一样,页面中我要使用不同的url接口地址,这时候就需要添加插件参数

    module.exports = {
      entry: './src/main.js',
      output: {
        path: path.resolve(__dirname, './dist'),
        publicPath: '/dist/',
        filename: 'build.js'
      },
    ..... plugins:[ new webpack.DefinePlugin({ //只有配置了,页面才可以获取到相关信息 "process.env.ENV": JSON.stringify(process.env.ENV),//对应文件中的变量 "process.env.VUE_APP_URL": JSON.stringify(process.env.VUE_APP_URL), }), ] }

    还有一个如果想在webpack中想通过不同环境设置不同的一些插件或者命令

    if (process.env.ENV === 'production') {//'production',是.env你相应的文件名称
    //这里面就放你需要配置的 
     module.exports.devtool = '#source-map'
      module.exports.plugins = (module.exports.plugins || []).concat([
        new webpack.optimize.UglifyJsPlugin({
          sourceMap: true,
          compress: {
            warnings: false
          }
        }),
        new webpack.LoaderOptionsPlugin({
          minimize: true
        })
      ])
     
     
    }

    第六步,package.json中配置不同环境的命令NODE_ENV=test ,解释一下这个字段的意思吧!等号前面的是固定的,等号后面的就是你根目录不同环境的文件名去掉.env.,这样你执行命令的时候就会启动不一样的配置文件,这里要对应上啊

     "scripts": {
        "test": "cross-env NODE_ENV=test webpack-dev-server  --open --hot",
        "dev": "cross-env NODE_ENV=development webpack-dev-server  --open --hot",
        "build": "cross-env   webpack --progress --hide-modules"
      },

    最后,启动一下,然后在页面中获取一下不同环境的后端接口 

    npm run dev

    页面中你就可以获取中不同环境的名称和不同环境的url,打印一下试试

    console.log(process.env.VUE_APP_URL+'---'+process.env.ENV)
    

      

  • 相关阅读:
    CopyOnWriteArrayList源码阅读笔记
    ArrayList源码阅读笔记
    MySQL和Oracle的区别
    思维导图概览SpringCloud
    Java学习之Request篇
    Java学习之servlet篇
    Java学习之数据库连接池
    Java学习之注解篇
    Java爬取先知论坛文章
    Java学习之爬虫篇
  • 原文地址:https://www.cnblogs.com/binmengxue/p/16404160.html
Copyright © 2020-2023  润新知