vue-cli如何修改打包項目結構及前綴
vue-cli修改打包項目結構及前綴
修改項目結構
找到config/index.js文件,在文件中找到build
// Template for index.html index: path.resolve(__dirname, '../dist/pages/index.html'), //打包后index的位置,cli會幫你在dist下創(chuàng)建pages文件 還可以修改文件名字和文件類型 // Paths assetsRoot: path.resolve(__dirname, '../dist'), //資源css,img, js等文件的位置 assetsSubDirectory: '', assetsPublicPath: '../',//pages/index.html引入資源文件的相對路徑 即<link href="../css/xxx.css" rel="external nofollow" rel="stylesheet"> <script type="text/javascript" src="../js/xxx.js">
以上配置打包后效果(index.html在pages下)
修改打包后資源前綴
找到build/webpack.base.conf.js頁面,找到
module.exports = { context: path.resolve(__dirname, '../'), entry: { app: './src/main.js' //app可修改 },
可將 app: './src/main.js' 修改為 share: './src/main.js',打包之后效果如下
share.xxx.js
share.xxx.css
VueJs 打包之后遇到的坑
最近在用webpack+vue寫項目,經過幾天的熬夜加班改BUG,終于把基本的框架給寫完了,后面只要加一些小功能就可以了,太好吧!先來npm run build 打包出來看看吧!
打包中...,我們用本地服務器打開看一下。
額,不看不知道,一看嚇一跳,坑咋這么多呢!但是作為一名積極向上的IT從業(yè)者,填坑吧。
打包之后沒有被渲染出來
怎么回事,剛打開就告訴我啥也沒有,這是要搞事情的前奏??!
我們看一下錯誤信息,告訴我路徑有問題,默默的看一下自己的地址欄和自己的文件所在目錄,原來是我的打包文件沒有放到根目錄下,這個時候我們可以把我們的兩個文件放到根目錄下,但是作為一名有個性的IT人士,當然要看有沒有其他方法。從上面的路徑中隱隱約約有點預感,static是直接相對于根目錄,說明這有可能打包的時候,有可能設置了絕對路徑,如果我改成相對路徑,那不就可以了嗎。
我們去看一下項目文件下的config>index.js找到里面的build下的assetsPublicPath:'/',把它改成assetsPublicPath:'./',加個小點表示相對路徑,不加表示絕對路徑。npm run build運行。成功。
路由(router)mode:'history',導致頁面不能渲染問題
地址欄的那個#怎么那么讓我不舒服呢!對于有輕度強迫癥的我來說,這是不能忍不了的。
我們在項目打包前,開發(fā)項目時(npm start),在vueRouter里設置mode:"history".可以去掉#號。
這里強行解釋一番:
路由(router)默認 hash 模式,使用 URL 的 hash 來模擬一個完整的 URL,于是當 URL 改變時,頁面不會重新加載,因為對于正常的頁面來說,更換URl一定是會導致頁面的更換的, 而只有更換URL中的查詢字符串和hash值的時候才不會重新加載頁面。
路由(router)的history模式,這種模式充分利用了history.pushState API來完成URL的跳轉而不需要重新加載頁面。沒有#號。
npm run build打包中....
什么鬼,為什么我的路由(router)部分沒有被渲染出來,這就是history的坑了,
- 解決方法一:會到以前的hash模式
- 解決方法二:設置routes里的路由name
這是因為路由(router)無法找到路徑中的組件,所以也就無法渲染了。
只需要修改 src > router > index.js,在每個path后加上組件名稱就行了,這樣就可以了。
這里有個小問題:
為了我們的時間考慮,還是放到根目錄吧!
首頁沒有問題了,逐個鏈接測試一下。
這是什么啊,路徑和其他圖片路徑一樣,圖片也存在啊,為啥你就是這么傲嬌,就是報錯。來看一下控制臺。
結合之前的./原來是相對路徑問題,是我的開發(fā)文件assets下多個圖片文件夾。
這個時候為了開發(fā)項目的可讀性和維護性。只能默默的把前面改的相對路徑'./'改回絕對路徑'/'了。這就尷尬了,額額額,大家就當沒看到哈!
總結
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
詳解vue之自行實現(xiàn)派發(fā)與廣播(dispatch與broadcast)
這篇文章主要介紹了詳解vue之自行實現(xiàn)派發(fā)與廣播(dispatch與broadcast),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-01-01