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">
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了
}
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
}
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, //不會有雜湊值
}
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檔案的
productionSourceMap:設定為false.
設定productionSourceMap:false。
我們不知道輸出語句是在程式碼中的哪一行輸出的.
以及js不會生成.map檔案。
設定為 false 以加速生產環境構建