@vue/cli的配置知道多少-publicPath,outputDir,assetsDir,indexPath,filenameHashing,configureWebpack,productionSourceMap

简介: @vue/cli的配置知道多少-publicPath,outputDir,assetsDir,indexPath,filenameHashing,configureWebpack,productionSourceMap

vue.config.js的简单介绍


vue.config.js 是一个可选的配置文件,


在项目的 (和 package.json 同级的) 根目录中存在这个文件。


默认情况没有这个文件需要我们手动去创建这个文件的哈


那么它会被 @vue/cli-service 自动加载。

module.exports={
    productionSourceMap: false, //生产环境地图资源,默认为true,此时js不会生成对应的.map文件
    publicPath: process.env.NODE_ENV === 'production' ? '././' : './',
}

需要注意的点哈


publicPath中的 ./ 是争对hash路径的。/是history的


因此是相对路径打包是././。第一个./是针对hash模式的哈


打包后其实是 ./指向的。而不是 ././


baseUrl 或 publicPath 相对路径打包


从 Vue CLI 3.3 起已弃用,请使用 publicPath 。
module.exports={
    productionSourceMap: false,
    publicPath: process.env.NODE_ENV === 'production' ? '././' : './',
}
这个时候生产环境的引用就是相对路径
<img alt="Vue logo" src="./assetsA/logo.png">


1425695-20220305155340841-429125528.png

outputDir 打包后的输出目录


module.exports = {
  publicPath: './', // 基本路径
  outputDir: 'dist', // 输出文件目录
}


assetsDir


assetsDir:设置放置打包生成的静态资源 (js、css、img、fonts) 的目录。
如果你将 assetsDir: 'assets'的值更改为 assetsA 后。
你开发环境值这样引入的  <img alt="Vue logo" src="../assets/logo.png">
你打包后自动变会变成   <img alt="Vue logo" src="../assetsA/logo.png">
不需要手动去更改的,是不是非常的友好呢?
module.exports = {
  publicPath: './', // 基本路径是相对路径 
  outputDir: 'dist', // 输出文件目录
  assetsDir: 'assets' //默认是assetsDir的值是assets。如果我们改为assetsA。生产环境就是assetsA了
}

1425695-20220305155426916-2060746159.png

indexPath


indexPath:用于设定打包生成的 index.html 文件的名称
默认值 indexPath: 'index.html'
module.exports={
    productionSourceMap: false,
    publicPath: process.env.NODE_ENV === 'production' ? '././' : './',
    outputDir: 'dist', // 输出文件目录
    assetsDir: 'assetsA',//设置放置打包生成的静态资源
    indexPath: 'indexdemo1.htm' //原来的index.html会变成indexdemo1.html
}

1425695-20220305155642337-796547836.png


filenameHashing


打包生成的的静态资源的文件名中是否加入hash以便控制浏览器缓存问题。
filenameHashing: true, //这个值默认为true有哈希值.在每次部署的时候,我们是希望有哈希值的哈
filenameHashing: false, //静态资源的文件没有哈希值
module.exports={
    productionSourceMap: false,
    publicPath: process.env.NODE_ENV === 'production' ? '././' : './',
    outputDir: 'distAhtml', // 输出文件目录
    assetsDir: 'assetsA',//设置放置打包生成的静态资源
    indexPath: 'indexdemo1.html',
    filenameHashing: false, //不会有哈希值
}


1425695-20220305155806443-759615373.png


1425695-20220305155815230-904546754.png

configureWebpack 配置别名


const path = require('path');//引入path模块,在配置别名的时候需要哈
module.exports = {
    publicPath: process.env.NODE_ENV === 'production' ? './' : './', //相对路径
    outputDir: 'distAhtml', // 输出文件目录
    assetsDir: 'assetsA',//设置放置打包生成的静态资源
    indexPath: 'indexdemo1.html',
    filenameHashing: false, //打包后不会有哈希值
    // 配置别名的函数
    configureWebpack: (config) => {
    // config为被解析的配置
        Object.assign(config, {
        // 开发生产共同配置,新增一些别名设置
            resolve: {
                // 别名配置
                alias: {
                    '@c': path.resolve(__dirname, './src/components'),
                    '@v': path.resolve(__dirname, './src/views'),
                    // 这个你需要配置一下,否者会报错项目中使用@引入有可能会报错的哈
                    '@': path.resolve(__dirname, './src'),
                } 
            }
        })
    }
}
在页面中如何去使用
<HelloWorld msg="Welcome to Your Vue.js App"/>
<TestCom></TestCom>
//引入的时候我们在使用别名,经过测试,开发和生成都没有问题
import HelloWorld from '@/components/HelloWorld.vue'
import TestCom from "@c/test-com.vue"
export default {
  name: 'Home',
  components: {
    HelloWorld,
    TestCom
  },


productionSourceMap (生产环境地图资源)


什么是productionSourceMap?


我理解的:productionSourceMap就是生产环境地图资源,它的作用就是定位。


可以定位浏览器控制台输出语句在项目文件的哪个位置。


productionSourceMap:它的值是布尔类型的,默认值是true。


可以将其设置为 false 以加速生产环境构建。


设置productionSourceMap:true。


我们可以清楚的知道输出语句是在哪个文件的哪个位置


以及js会生成.map文件。css是不会生成.map文件的


productionSourceMap:设置为true.


设置productionSourceMap:true。


我们可以清楚的知道输出语句是在哪个文件的哪个位置.


以及js会生成.map文件。css是不会生成.map文件的


1425695-20220305160627399-1802287715.png

1425695-20220305160644454-1269747968.png

productionSourceMap:设置为false.


设置productionSourceMap:false。


我们不知道输出语句是在代码中的哪一行输出的.


以及js不会生成.map文件。


设置为 false 以加速生产环境构建

1425695-20220305160859787-389270662.png

1425695-20220305160907376-1032771386.png

相关文章
|
1月前
|
资源调度 JavaScript 前端开发
Vue的路由管理:VueRouter的配置和使用
【4月更文挑战第24天】VueRouter是Vue.js的官方路由管理器,用于在单页面应用中管理URL路径与组件的映射。通过安装并引入VueRouter,设置路由规则和创建router实例,可以实现不同路径下显示不同组件。主要组件包括:`&lt;router-link&gt;`用于创建导航链接,`&lt;router-view&gt;`负责渲染当前路由对应的组件。此外,VueRouter还支持编程式导航和各种高级特性,如嵌套路由、路由参数和守卫,以应对复杂路由场景。
|
18天前
|
JavaScript 前端开发 开发者
vue3+ts配置跨域报错问题解决:> newpro2@0.1.0 serve > vue-cli-service serve ERROR Invalid options in vue.
【6月更文挑战第3天】在 Vue CLI 项目中遇到 &quot;ERROR Invalid options in vue.config.js: ‘server’ is not allowed&quot; 错误是因为尝试在 `vue.config.js` 中使用不被支持的 `server` 选项。正确配置开发服务器(如代理)应使用 `devServer` 对象,例如设置代理到 `http://xxx.com/`: ```javascript module.exports = { devServer: {
30 1
|
8天前
|
JavaScript 前端开发 测试技术
使用 Vue CLI 脚手架生成 Vue 项目
通过 Vue CLI 创建 Vue 项目可以极大地提高开发效率。它不仅提供了一整套标准化的项目结构,还集成了常用的开发工具和配置,使得开发者可以专注于业务逻辑的实现,而不需要花费大量时间在项目配置上。
67 7
使用 Vue CLI 脚手架生成 Vue 项目
|
18天前
|
JavaScript
|
1月前
|
存储 缓存 JavaScript
如何从 Vue CLI 迁移到 Vite
如何从 Vue CLI 迁移到 Vite
|
1月前
|
资源调度 JavaScript 前端开发
路由管理:Vue Router的使用和配置技巧
【4月更文挑战第22天】Vue.js的官方路由管理器Vue Router简化了单页面应用的路由管理。通过定义路由组件和映射URL,它实现了页面导航和组件加载。安装Vue Router后,在`src/router/index.js`配置路由,如`{ path: &#39;/&#39;, component: Home }`。使用`&lt;router-view&gt;`渲染组件,`&lt;router-link&gt;`进行导航。动态路由匹配允许同一个组件对应不同URL。嵌套路由和编程式导航进一步增强路由功能。路由守卫可在路由切换时执行逻辑,而路由懒加载能按需加载组件,提升性能。
|
1月前
|
缓存 监控 JavaScript
环境搭建:Vue项目的开发环境和生产环境配置
【4月更文挑战第23天】本文指导Vue开发者配置开发和生产环境,强调了两者目的和特点。开发环境用于编写、测试和调试,侧重快速反馈和调试工具;生产环境注重稳定性、效率和安全性,需进行代码优化、错误处理和日志监控。配置步骤包括安装Node.js和npm,使用Vue CLI,配置Webpack、热重载和源码映射。生产环境要实现代码分割、压缩、最小化,启用CSP、HTTPS,优化静态资源和缓存策略。环境配置应随项目发展和技术进步持续优化。
|
1月前
|
JavaScript 前端开发
ant design vue 配置菜单外部打开
ant design vue 配置菜单外部打开
24 0
|
1月前
|
JavaScript 搜索推荐 前端开发
Vue工具和生态系统:Vue CLI是什么?它的作用是什么?
【4月更文挑战第17天】Vue CLI是官方的Vue.js开发加速器,它包含交互式项目模板和@vue/cli-service,基于webpack并预设配置。支持个性化配置和插件扩展,拥有大量官方插件,整合最佳前端工具。还提供图形化界面用于项目管理和创建。
18 0
|
1月前
vue3打包war压缩包配置
vue3打包war压缩包配置
30 0