Vue-cli3项目之Vue.config.js配置文件—取代vue-cli2中build与config

news2024/9/23 11:13:56

我们在做vue项目的时候,在根目录中肯定都看到过一个vue.config.js文件,那么这个文件在整个项目中到底有什么作用呢?本文就来说说使用Vue-cli3 创建的vue项目中,Vue.config.js文件的配置问题。

说点题外话,先来看看vue-cli3与vue-cli 2版本之间有哪些区别 👇

◼️ vue-cli3与vue-cli 2版本区别

- vue-cli3基于webpack4打造,vue-cli2是基于webpack3

- vue-cli3的设计原则是"0配置",默认项目目录结构也发生了变化:

◾ 移除了配置文件目录—build和config文件夹,但是多了.env.production和env.development文件;

webpack配置文件目录——vue-cli2:build文件夹; vue-cli3:vue.config.js文件

备注:vue-cli3移除了build文件夹,也就没有了webpack.base.config.js、webpack.dev.config.js、webpack.prod.config.js等配置文件

配置文件目录——vue-cli2:config文件夹; vue-cli3:vue.config.js文件

配置域名——vue-cli2: 在config中的dev.env.js和prod.env.js中分别配置; vue-cli3:在                  vue.config.js中配置

跨域时配置域名——vue-cli2:在config中的index.js中配置;vue-cli3:在vue.config.js中配置

* index.js

* vue.config.js

◾ 移除了static文件夹,新增 public 文件夹,并且 index.html 移动到 public ◾ 在 src 文件夹中新增了 views 文件夹,用于分类视图组件和公共组◾ vue-cli3提供 vue ui 的命令,提供了可视化配置

◾ 创建项目的命令由vue init webpack  项目名 更改为 vue create 项目名;

◾ 启动项目由npm run dev 更改为 npm run serve

使用Vue-cli3 搭建的项目,界面相对之前的Vue-cli2较为简洁,如下图vue-cli3项目结构:

之前的build和config文件夹不见了,那么应该如何配置,如webpack等的配置项呢?只需要在项目的根目录下新建 vue.config.js 文件( 取代了vue-cli2项目中build、config文件配置目录),在其中进行你需要的相关配置即可(注意:是根目录,而不是src目录)

对比vue-cli2项目结构:解析Vue项目各个文件夹及文件的作用

vue.config.js 是一个可选的配置文件,如果项目的 (和 package.json 同级的) 根目录中存在这个文件,那么它会被 @vue/cli-service 自动加载。你也可以使用 package.json 中的 vue 字段,但是注意这种写法需要你严格遵照 JSON 的格式来写。具体可以查阅Vue CLI配置参考:配置参考 | Vue CLI

比较常见的配置项有:

- baseUrl ( publicPath )
Vue CLI 3.3 之前用baseUrl,部署应用包时的基本 URL。

- outputDir
当运行 vue-cli-service build 时生成的生产环境构建文件的目录。

- assetsDir
放置生成的静态资源 (js、css、img、fonts) 的 (相对于 outputDir 的) 目录。

- pages
在 multi-page 模式下构建应用。每个“page”应该有一个对应的 JavaScript 入口文件。

- lintOnSave
是否在开发环境下通过 eslint-loader 在每次保存时 lint 代码。这个值会在 @vue/cli-plugin-eslint 被安装之后生效。

设置为 true 或 ‘warning’ 时,eslint-loader 会将 lint 错误输出为编译警告。默认情况下,警告仅仅会被输出到命令行,且不会使得编译失败。

- devServer
所有 webpack-dev-server 的选项都支持。

注意:有些值像 host、port 和 https 可能会被命令行参数覆写。有些值像 publicPath 和 historyApiFallback 不应该被修改,因为它们需要和开发服务器的 publicPath 同步以保障正常的工作。

- devServer.proxy
如果你的前端应用和后端 API 服务器没有运行在同一个主机上,你需要在开发环境下将 API 请求代理到 API 服务器。这个问题可以通过 vue.config.js 中的 devServer.proxy 选项来配置。devServer.proxy 可以是一个指向开发环境 API 服务器的字符串。

- pluginOptions
这是一个不进行任何 schema 验证的对象,因此它可以用来传递任何第三方插件选项。

举个栗子:常见配置项的语法如下:

module.exports = {
  // 基本路径 baseURL已经过时
  publicPath: "./",
  // 输出文件目录
  outputDir: "dist",
  // eslint-loader 是否在保存的时候检查
  lintOnSave: true,
  // use the full build with in-browser compiler?
  // https://vuejs.org/v2/guide/installation.html#Runtime-Compiler-vs-Runtime-only
  // compiler: false,
  // webpack配置
  // see https://github.com/vuejs/vue-cli/blob/dev/docs/webpack.md
  chainWebpack: () => { },
  configureWebpack: () => { },
  // vue-loader 配置项
  // https://vue-loader.vuejs.org/en/options.html
  // vueLoader: {},
  // 生产环境是否生成 sourceMap 文件
  productionSourceMap: true,
  // css相关配置
  css: {
    // 是否使用css分离插件 ExtractTextPlugin
    extract: true,
    // 开启 CSS source maps?
    sourceMap: false,
    // css预设器配置项
    loaderOptions: {},
    // 启用 CSS modules for all css / pre-processor files.
    modules: false,
  },
  // use thread-loader for babel & TS in production build
  // enabled by default if the machine has more than 1 cores
  parallel: require("os").cpus().length > 1,
  // 是否启用dll
  // See https://github.com/vuejs/vue-cli/blob/dev/docs/cli-service.md#dll-mode
  // dll: false,
  // PWA 插件相关配置
  // see https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-pwa
  pwa: {},
  // webpack-dev-server 相关配置
  devServer: {
    open: process.platform === "darwin",
    host: "0.0.0.0", //如果是真机测试,就使用这个IP
    port: 1234,
    https: false,
    hotOnly: false,
    proxy: null, // 设置代理
    before: (app) => { },
  },
  // 第三方插件配置
  pluginOptions: {
    // ...
  },
};

Vue.config.js中配置跨域,代码如下:

devServer: {
  open: true, //浏览器自动打开页面
  host: "0.0.0.0", //如果是真机测试,就使用这个IP
  port: 8911,
  https: false,
  hotOnly: false, //热更新(webpack已实现了,这里false即可)
  proxy: {
    //配置跨域
    "/api": {
      target: "http://192.168.234.237:8886/api",
      ws: true,
      changOrigin: true,
      pathRewrite: {
        "^/api": "/",
      },
    },
  },
}

番外:webpack.config.js和vue.config.js的区别 

参考:创建vue项目后没有webpack.config.js文件如何解决

webpack.config.js是webpack的配置文件,所有使用webpack作为打包工具的项目都可以使用,vue的项目可以使用,react的项目也可以使用。

vue.config.js是vue项目的配置文件,专用于vue项目。通过vue.config.js中常用功能的配置,简化了配置工作,当然如果需要更专业的配置工作,两者在vue项目中是可以并存的。

vue-cli3创建的时候并不会自动创建vue.config.js,因为这个是可选项,所以一般都是修改webpack的时候才会自己创建一个vue.config.js。

再然后因为vue-cli3内部高度集成了webpack,一般来说使用者不需要再去对webpack配置什么,所以没有暴露webpack的配置文件,但你依然可以创建vue.config.js去修改默认的webpack。


🌿 参考资料:一文聊透vue配置文件——vue.config.js

Vue-cli之vue.config.js | vue.config.js详解 | 配置参考 | Vue CLI

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/801573.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

隐藏文件夹怎么显示?3种方法轻松解决!

“我有些文件不知道为什么就看不到了,不知道是因为我不小心将它们隐藏了还是删除了。有家人知道隐藏文件怎么显示的吗?非常着急,感谢回答!” 为了保护我们的隐私,有些重要的文件我们不想将其被人看到,一个…

2017年全国硕士研究生入学统一考试管理类专业学位联考写作试题——解析版

2017年1月真题 四、写作:第56~57小题,共65 分。其中论证有效性分析30 分,论说文35分。 56、论证有效性分析: 分析下述论证中存在的缺陷和漏洞,选择若干要点,写一篇600字左右的文章,对论证的有…

【启扬方案】嵌入式核心板在全自动生化仪设备中的应用

随着科技的不断进步和医疗技术的发展,全自动生化分析仪作为体外诊断领域的重要工具之一,逐渐受到广泛的关注。全自动生化分析仪作为一种能够实时监测和分析体液中生化指标的设备,在临床医学应用中的用途广泛,可用于检测血液中的血…

Nim游戏博弈论

【模板】nim 游戏 题目描述 https://www.luogu.com.cn/problem/P2197 甲,乙两个人玩 nim 取石子游戏。 nim 游戏的规则是这样的:地上有 n n n 堆石子(每堆石子数量小于 1 0 4 10^4 104),每人每次可从任意一堆石子…

管理后台低代码PaaS平台源码:点击鼠标,就能编程

低代码平台源码10大核心功能:1建模引擎 、2 移动引擎 、3,流程引擎 5.报表引擎、6安全引擎、 7 API引擎 、8.应用集成引擎、 9.代码引擎、 10.公式引擎。 一、低代码开发特色 1.低代码开发:管理后台提供了一系列易于使用的低代码开发工具,使企业可以快速…

CSPM难度大吗?对比pmp怎么样?

CSPM证书是刚出来的,难度不会很大,大家都知道 PMP 证书是从国外引进的,近几年很热门,持证人数已经高达 90 余万了,但是目前我们和老美关系大家有目共睹,一直推国际标准和美国标准感觉有点奇怪。 现在新出台…

React Flow

// 创建项目 npm create vitelatest my-react-flow-app -- --template react // 安装插件 npm install reactflow // 运行项目 npm run dev 1、App.jsx import { useCallback, useState } from react; import ReactFlow, {addEdge,ReactFlowProvider,MiniMap,Controls,useNode…

适用于虚拟环境的免费企业备份软件

多年来,许多行业严重依赖物理服务器提供计算资源——你可以想象到巨大的服务器机房和笨重的服务器的场景。 然而,随着业务快速增长,许多组织发现物理服务器已经无法有效利用计算资源。因此,为了节省成本,引入了虚拟服…

STL中 vector常见函数用法和迭代器失效的解决方案【C++】

文章目录 size && capacityreserveresizeempty迭代器begin和end push_back &&pop_backinsert && erasefindswap[ ]范围for遍历vector迭代器失效问题 size && capacity #include <iostream> #include <vector> using namespace st…

一文搞懂如何在群晖NAS中使用cpolar实现【内网穿透】

文章目录 1.1前言2.如何在群晖nas中使用cpolar内网穿透2.1第一步——进入套件中心2.2第二步——管理cpolar套件2.3第三步——建立专属的数据隧道2.4 第四步——查看本地数据隧道状态是否激活 3.结语 1.1前言 今天&#xff0c;我们来为大家介绍&#xff0c;如何在群晖系统中&am…

设计模式-命令模式在Java中的使用示例-桌面程序自定义功能键

场景 欲开发一个桌面版应用程序&#xff0c;该应用程序为用户提供了一系列自定义功能键&#xff0c;用户可以通过这些功能键来实现一些快捷操作。 用户可以将功能键和相应功能绑定在一起&#xff0c;还可以根据需要来修改功能键的设置&#xff0c;而且系统在未来可能还会增加…

做外贸工厂跳过我联系了客户

在我十多年外贸创业历程里&#xff0c;遇过不少想跳过我直接和客户联系的供应商。 譬如给客户发邮件&#xff0c;悄咪咪将我从抄送里删掉。又或者偷偷将名片塞在货柜里&#xff0c;期望客户一开箱就能看到。 然而这么多年过去&#xff0c;一次让他们得逞的机会都没有。每一次…

C++多线程编程(第三章 案例1,使用互斥锁+ list模拟线程通信)

主线程和子线程进行list通信&#xff0c;要用到互斥锁&#xff0c;避免同时操作 1、封装线程基类XThread控制线程启动和停止&#xff1b; 2、模拟消息服务器线程&#xff0c;接收字符串消息&#xff0c;并模拟处理&#xff1b; 3、通过Unique_lock和mutex互斥方位list 消息队列…

【力扣每日一题】2023.7.28 并行课程3

目录 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 代码&#xff1a; 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 题目给我们课程表以及每门课需要学习的时间&#xff0c;我们可以同时学任意数量的课程&#xff0c;但是学习的条件是先修课程都已经学完了…

【雕爷学编程】MicroPython动手做(02)——尝试搭建K210开发板的IDE环境6

#尝试搭建K210的Micropython开发环境&#xff08;Win10&#xff09; #实验程序之六&#xff1a;测试Microphone阵列算法 #尝试搭建K210的Micropython开发环境&#xff08;Win10&#xff09; #实验程序之六&#xff1a;测试Microphone阵列算法from Maix import MIC_ARRAY as mi…

MySQL运维:从全备sql文件中提取指定表的数据并恢复

目录 一、运行环境 二、需求说明 三、思路分析 五、具体方案 六、恢复表数据 一、运行环境 系统&#xff1a;CentOS7.3 数据库&#xff1a;MySQL 8.0.21 二、需求说明 线上有个表的数据被误操作了很多&#xff0c;无法通过bin-log进行具体的恢复。所以当前我们需要从全…

Spring Boot 应用程序生命周期扩展点妙用

文章目录 前言1. 应用程序生命周期扩展点2. 使用场景示例2.1 SpringApplicationRunListener2.2 ApplicationEnvironmentPreparedEvent2.3 ApplicationPreparedEvent2.4 ApplicationStartedEvent2.5 ApplicationReadyEvent2.6 ApplicationFailedEvent2.7 ApplicationRunner 3. 参…

产品能力|AIRIOT可视化组态引擎如何应用于物联业务场景中

在物联网的业务应用场景中&#xff0c;可视化组态是一个必不可少的功能需求。不同的行业场景&#xff0c;都需要将物联设备采集的数据和业务场景状态进行直观的可视化展示&#xff0c;供使用者进行分析或决策。如工艺流程用能监测、3D场景构建、能耗趋势场景报警联动、重点设备…

RAD-NeRF模型

问题1&#xff1a; 添加在以下的参数里添加bin_size0 问题2&#xff1a; 更行GLIBC_2.29_glibc_2_29.so_xihuanyuye的博客-CSDN博客

如何使用Crank给我们的类库做基准测试

背景 当我们写了一个类库提供给别人使用时&#xff0c;我们可能会对它做一些基准测试来测试一下它的性能指标&#xff0c;好比内存分配等。 在 .NET 的世界中&#xff0c;用 BenchmarkDotNet 来做这件事是非常不错的选择&#xff0c;我们只要写少量的代码就可以在本地运行基准…