vue.config.js基本配置

2023-10-29

方法一 (vue3)

vue.config.js 

const { defineConfig } = require('@vue/cli-service')

module.exports = defineConfig({
  transpileDependencies: true,
  lintOnSave: false,
  devServer: {
    port: 8080,
    host:'127.0.0.1',
    open: true,
    allowedHosts: '*'
  },
  publicPath: './',
  chainWebpack: config => {
    if (process.env.NODE_ENV === 'production') {
      // #region 忽略生成环境打包的文件
      var externals = {
        'vue': 'Vue',
        'axios': 'axios',
        'element-plus': 'ElementPlus',
        'vue-router': 'VueRouter',
        'vuex': 'Vuex',
        'nprogress': 'NProgress',
        'echarts': 'echarts'
      }
      config.externals(externals)

      // 在html文件中引入相关CDN
      const cdn = {
        css: [
          // element-ui css
          'https://unpkg.com/element-plus@2.1.7/dist/index.css',
          // nprogress
          'https://cdn.bootcdn.net/ajax/libs/nprogress/0.2.0/nprogress.min.css'
        ],
        js: [
          // vue
          'https://cdn.bootcdn.net/ajax/libs/vue/3.2.31/vue.runtime.global.prod.min.js',
          // vue-router
          'https://cdn.bootcdn.net/ajax/libs/vue-router/4.0.14/vue-router.global.prod.min.js',
          // vuex
          'https://cdn.bootcdn.net/ajax/libs/vuex/4.0.2/vuex.global.prod.min.js',
          // axios
          'https://cdn.bootcdn.net/ajax/libs/axios/0.26.1/axios.min.js',
          // element-plus
          'https://unpkg.com/element-plus@2.1.7/dist/index.full.min.js',
          // echarts
          'https://cdn.bootcdn.net/ajax/libs/echarts/5.3.1/echarts.common.min.js',
          // nprogress
          'https://cdn.bootcdn.net/ajax/libs/nprogress/0.2.0/nprogress.min.js',
          // core-js
          'https://cdn.bootcdn.net/ajax/libs/core-js/3.21.1/minified.min.js',
          // less
          'https://cdn.bootcdn.net/ajax/libs/less.js/4.1.2/less.min.js',
          // typescript
          'https://cdn.bootcdn.net/ajax/libs/typescript/4.3.5/typescript.min.js'
        ]
      }
      config.plugin('html').tap(args => {
        args[0].cdn = cdn
        return args
      })
    }

    config.when(process.env.NODE_ENV === 'development', config => {
      config.entry('app').clear().add('./src/main.ts')
      config.plugin('html').tap(args => {
        // args[0].isProd = false
        args[0].cdn = { css: [], js: [] }
        return args
      })
    })
  }
})

index.html

<!DOCTYPE html>
<html lang="">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width,initial-scale=1.0">
    <link rel="icon" href="<%= BASE_URL %>favicon.ico">
    <% for(var css of htmlWebpackPlugin.options.cdn.css) { %>
      <link href="<%=css%>" rel="preload" as="style">
      <link rel="stylesheet" href="<%=css%>" as="style">
    <% } %>
    <% for(var js of htmlWebpackPlugin.options.cdn.js) { %>
      <link href="<%=js%>" rel="preload" as="script">
      <script src="<%=js%>"></script>
    <% } %>
    <title>document</title>
  </head>
  <body>
    <noscript>
      <strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
    </noscript>
    <div id="app"></div>
    <!-- built files will be auto injected -->
  </body>
</html>

方法二 (vue2)

 vue.config.js

module.exports = {
  devServer: {
    host:'127.0.0.1',
    port: 8000,
    open: true,
    disableHostCheck: true
  },
  publicPath: process.env.NODE_ENV === 'production'
    ? './'
    : '/',
  chainWebpack: config => {
    config.when(process.env.NODE_ENV === 'production', config => {
      config.entry('app').clear().add('./src/main-pro.js')
      config.set('externals', {
        vue: 'Vue',
        'vue-router': 'VueRouter',
        axios: 'axios',
        echarts: 'echarts',
        nprogress: 'NProgress',
        'vue-quill-editor': 'VueQuillEditor'
      })
      config.plugin('html').tap(args => {
        args[0].isProd = true
        return args
      })
    })
    config.when(process.env.NODE_ENV === 'development', config => {
      config.entry('app').clear().add('./src/main-dev.js')
      config.plugin('html').tap(args => {
        args[0].isProd = false
        return args
      })
    })
  }
}

index.html

<!DOCTYPE html>
<html lang="">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width,initial-scale=1.0">
    <link rel="icon" href="<%= BASE_URL %>favicon.ico">
    <title><%= htmlWebpackPlugin.options.isProd ? '' : 'dev - ' %>后台管理系统</title>
    <% if(htmlWebpackPlugin.options.isProd){ %>
    <!-- nprogress 的样式表文件 -->
    <link rel="stylesheet" href="https://cdn.staticfile.org/nprogress/0.2.0/nprogress.min.css" />
    <!-- 富文本编辑器 的样式表文件 -->
    <link rel="stylesheet" href="https://cdn.staticfile.org/quill/1.3.4/quill.core.min.css" />
    <link rel="stylesheet" href="https://cdn.staticfile.org/quill/1.3.4/quill.snow.min.css" />
    <link rel="stylesheet" href="https://cdn.staticfile.org/quill/1.3.4/quill.bubble.min.css" />
    <!-- element-ui 的样式表文件 -->
    <link rel="stylesheet" href="https://cdn.staticfile.org/element-ui/2.4.5/theme-chalk/index.css" />

    <script src="https://cdn.staticfile.org/vue/2.5.22/vue.min.js"></script>
    <script src="https://cdn.staticfile.org/vue-router/3.0.1/vue-router.min.js"></script>
    <script src="https://cdn.staticfile.org/axios/0.18.0/axios.min.js"></script>
    <script src="https://cdn.staticfile.org/lodash.js/4.17.11/lodash.min.js"></script>
    <script src="https://cdn.staticfile.org/echarts/4.1.0/echarts.min.js"></script>
    <script src="https://cdn.staticfile.org/nprogress/0.2.0/nprogress.min.js"></script>
    <!-- 富文本编辑器的 js 文件 -->
    <script src="https://cdn.staticfile.org/quill/1.3.4/quill.min.js"></script>
    <script src="https://cdn.jsdelivr.net/npm/vue-quill-editor@3.0.4/dist/vue-quill-editor.js"></script>

    <!-- element-ui 的 js 文件 -->
    <script src="https://cdn.staticfile.org/element-ui/2.4.5/index.js"></script>

    <% } %>
  </head>
  <body>
    <noscript>
      <strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
    </noscript>
    <div id="app"></div>
    <!-- built files will be auto injected -->
  </body>
</html>

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

vue.config.js基本配置 的相关文章

随机推荐

  • Keil 中出现“encountered an improper argument” 解决办法

    Keil 中出现 encountered an improper argument 解决办法 出现这种情况就是因为目录文件下带有中文路径 不要弄成中文路径就可以解决了
  • HyperledgerFabric资产案例链码实例

    案例分析 功能 用户开户和销户 资产登记 资产上链 与具体的用户绑定 资产转让 资产所有权变更 查询功能 用户查询 资产查询 资产变更的历史查询 业务实体 用户 名字 身份证 标识 资产列表 资产 名字 标识 特殊属性列表 车 排量 品牌
  • linux基础操作命令符(下)

    linux基础操作命令符 上 linux笔记查询 关于用户 用户的管理 用户组的管理 权限的管理 SSH 解决等待缓存 无法获得锁问题 关于ping命令 ssh 远程连接 ssh远程拷贝的命令 查看linux本地配置 查看磁盘文件目录 df
  • 亚马逊+纽约大学开源图神经网络框架DGL:新手友好,与主流框架无缝衔接

    量子位 授权转载 公众号 QbitAI 最近 纽约大学 纽约大学上海分校 AWS上海研究院以及AWS MXNet Science Team共同开源了一个面向图神经网络及图机器学习的全新框架 命名为Deep Graph Library DGL
  • 1800*D. Nested Segments(数组数组&&离散化)

    解析 按照右端点进行排序 这样某个区间包含的区间只能是在其前面的区间中 所以维护左端点 x 的出现次数 这样我们在查询某个区间 x y 的时候 只需要求 x y 之间包含多少个前面区间的 x 即可 前缀和 因为 前面区间的 y 显然小于当前
  • 微信小程序——常用组件的属性介绍

    常用的组件内容标签 text 文本组件 类似于HTML中的span标签 是一个行内元素 rich text 富文本标签 支持把HTML字符串渲染为WXML结构 text标签的基本使用 通过text组件的selectable属性 实现长按选中
  • C++中的左值与右值(二

    C 中的左值与右值 二 以前以为自己把左值和右值已经弄清楚了 果然发现自己还是太年轻了 下面的这些东西是自己通过在网上拾人牙慧 加上自己的理解写的 1 2 怎么区分左值和右值 知乎大神 顾露的回答 3 我们不能直接定义一个引用的引用 但是
  • ts重点学习85-map类型

  • Idea更新新版本报错,Some conflicts were found in the installation area.

    笔者使用的Idea是2021 2版本 今天直接升级发现报错 找了下解决方法 供大家参考 升级过程 请添加图片描述 https img blog csdnimg cn eaa75e5af7d243d8a2a3f8a731feb6c1 png
  • 【计算机视觉

    文章目录 一 检测相关 8篇 1 1 Explainable Cost Sensitive Deep Neural Networks for Brain Tumor Detection from Brain MRI Images consi
  • 基于java的出租车预约网站

    出租车预约网站能够有效的解决大家上班下班打不到车 加快吃饭逛街的效率 天阴下雨无障碍出行 自己有车不舍得开等问题 使得用户查询车辆信息更加方面快捷 同时便于管理员对车辆和用户的管理 从而给出租车管理公司的预约管理工作带来更高的效率 因此 我
  • CentOS 6 时间,时区,设置修改及时间同步

    一 时区 显示时区 date help 获取帮助 date R date z 上面两个命令都可 root localhost date R date z
  • 数据清洗基本概念

    1 基本概念 数据清洗从名字上也看的出就是把 脏 的 洗掉 指发现并纠正数据文件中可识别的错误的最后一道程序 包括检查数据一致性 处理无效值和缺失值等 因为数据仓库中的数据是面向某一主题的数据的集合 这些数据从多个业务系统中抽取而来而且包含
  • 从零实现一个在线考试系统

    晚上好 我是老北 公众号 GitHub 指北 会推荐 GitHub 上有用有趣的项目 挖掘开源的价值 欢迎关注 基于 SpringBoot Mybatis Plus Shiro mysql redis 构建的智慧云智能教育平台 架构上使用完
  • 前端交互设计利器--MVVM框架avalon.js

    前端交互设计 少不了使用js框架 特别是近来非常火爆的MVVM框架 MVVM框架的确是前端交互设计的利器 最近接触到国内大牛编写的前端框架 avalon js 功能强大 兼容性好 非常好用 MVVM框架核心思想是模型数据与视图绑定 改变了模
  • AI聊天机器人,你更爱哪个?

    嗨 各位同学 最近这几个人工智能助手可是火得很啊 叮咚 AI哥们儿ChatGPT已经很强了 轻松应对各种问题 文笔挺不错的 咻 Anthropic公司的Claude也很给力 聊天能力十分强大 嗖 Google新出的Bard看着也很厉害 刚一
  • 中国自主可控计算机大会、,2019CCF自主可控计算机大会召开

    nbsp nbsp nbsp nbsp光明网讯 齐柳明 7月23日至24日 2019CCF自主可控计算机大会 在北京召开 会议以 应用驱动 协同创新 自主可控发展的源泉和动力 为主题 大会在目前自主可控计算机发展态势良好基础上 针对相关信息
  • css 选择除了某个类下的所有某种元素

    要求 选择除了某个类下的所有input输入框 非页脚下的输入框高度 input not bs table foot input height 40px important line height 40px important
  • PyTorch框架中使用早停止Early Stopping(含详细代码)

    文章目录 1 什么是早停止 为什么使用早停止 2 如何使用早停止 3 Refferences 1 什么是早停止 为什么使用早停止 早停止 Early Stopping 是 当达到某种或某些条件时 认为模型已经收敛 结束模型训练 保存现有模型
  • vue.config.js基本配置

    方法一 vue3 vue config js const defineConfig require vue cli service module exports defineConfig transpileDependencies true