轉自:vue-cli中自定義路徑別名 assets和static文件夾的區別php
相信有不少人知道vue-cli有兩個放置靜態資源的地方,分別是src/assets
文件夾和static
文件夾,這二者的區別不少人可能不太清楚。html
assets目錄中的文件會被webpack處理解析爲模塊依賴,只支持相對路徑形式。例如,在 <img src="./logo.png">
和 background: url(./logo.png)
中,」./logo.png」 是相對的資源路徑,將由Webpack解析爲模塊依賴。vue
static/ 目錄下的文件並不會被Webpack處理:它們會直接被複制到最終的打包目錄(默認是dist/static)下。必須使用絕對路徑引用這些文件,這是經過在 config.js 文件中的 build.assetsPublicPath 和 build.assetsSubDirectory 鏈接來肯定的。webpack
任何放在 static/ 中文件須要以絕對路徑的形式引用:/static/[filename]。web
在咱們實際的開發中,總的來講:static放不會變更的文件 assets放可能會變更的文件。vue-cli
由於webpack會將圖片當作模塊來引用,因此在js中須要使用require將圖片引用進來,不能直接以字符串的形式。npm
1
2
3
4
5
6
7
8
9
10
11
12
|
js部分:
data () {
return
{
imgUrl:
'圖片地址'
,
//錯誤寫法
imgUrl: require(
'圖片地址'
)
//正確的寫法
}
}
template部分:
img標籤形式:
<img :src=
"img"
/>
或者p背景圖形式:
<p :style=
"{backgroundImage: 'url(' + img + ')'}"
></p>
|
說了圖片就正好再提一下vue-cli的一個圖片有關的配置,下圖這個配置的意思是:在10000b 的圖片如下進行base64轉換,因此若是項目中有些比較小的icon就不用再進行圖片精靈的處理了json
vue-cli 用的是webpack,也可使用webpack自定義別名這個功能,自定義別名這個功能當你在多層文件夾嵌套的時候沒必要一層一層找路徑,直接使用自定義別名就能夠找到文件的位置。webstorm
**設置地址:**build文件夾下面的webpack.base.conf.js文件
具體設置:ui
1
2
3
4
5
6
7
8
|
resolve: {
extensions: [
'.js'
,
'.vue'
,
'.json'
],
alias: {
'vue$'
:
'vue/dist/vue.esm.js'
,
'@'
: resolve(
'src'
),
'static'
:path.resolve(__dirname,
'../static'
),
//增長這一行代碼
}
},
|
使用方式:
使用的時候要像下方截圖的B處同樣前面要加上一個’~’,這裏的webstorm雖然提示報錯,咱們能夠不用管,代碼運行是正常的。
解讀:
這裏給’static’賦予了一個地址,那麼在程序中引入路徑的時候’~static’就直接能夠代替路徑’../static’,親測,這裏就算多層嵌套也能夠成功找到路徑。
不少人像我同樣,剛開始的會安裝不少插件,而後最後在項目中並無用到。那以前安裝的插件太多了,連本身都忘記了安裝了哪些插件?
在上圖所示位置,咱們項目安裝的全部的模塊依賴都在這個pageage.json文件中,當咱們須要整理一波本身的依賴的時候,能夠在這個文件裏面找有沒有如今已經沒用的依賴,可使用命令行npm remove 模塊名字
來刪除沒用的模塊。
上面的這些依賴有些只在開發環境裏面使用的模塊,有的在項目上線以後仍是要繼續依賴的模塊。他們之間的區別就在於咱們平時安裝模塊依賴時的:--save-dev
和 --save
當你使用--save-dev
安裝依賴的時候就會放在package.json的devDependencies對象下面,相反的,當你使用--save
安裝依賴的時候就會出如今dependencies對象下面。
總結:* –save-dev 是你開發時候依賴的東西,–save 是你發佈以後還依賴的東西。*