国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Vue 腳手架(打包工具)的理解 - 配置文件理解

這篇具有很好參考價值的文章主要介紹了Vue 腳手架(打包工具)的理解 - 配置文件理解。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

序言

Vue 腳手架是 Vue 作為一個前端開發(fā)項(xiàng)目的最核心點(diǎn),將JavaScript、CSSHTML這幾種前端自動整合,極大的簡化了前端開發(fā)工作。

沒有 Vue 腳手架,就沒有 Vue ,這是一定的,Java 語言和C語言都需要編譯,那么你可以將 Vue 腳手架看作是偽編譯器吧,或者是偽解釋器,當(dāng)然偽解釋器比較準(zhǔn)確點(diǎn)。

個人理解

在筆者看來,Vue 項(xiàng)目有時會出現(xiàn)兩個問題,一個是舊版本的 Vue 腳手架,一個是新版本的Vue 腳手架,筆者不太清楚哪些 Vue腳手架版本是算是舊版,還是新版,但是很明確的知道,部分Vue 項(xiàng)目的的確確會出現(xiàn)一種情況,那就是沒有 public 目錄的情況,當(dāng)遇到這種情況,的確會出現(xiàn)額外的問題需要解決,問題在于 index.html 文件的放置問題,比如新版 Vue 腳手架正常情況下,index.html 文件都會在 Vue 項(xiàng)目創(chuàng)建時,便已被放置在 public 目錄下,但是舊版 Vue 腳手架,卻會直接將 index.html文件放置在 Vue 項(xiàng)目的根目錄下,在我看來,有些不規(guī)范,對于強(qiáng)迫癥而言,的確有些不舒服。

筆者嘗試修改舊版 Vue 腳手架 index.html 路徑問題思路如下:

  1. 修改 process.env.BASE_URL,但涉及源碼比較深入,不宜操作,舍棄

  2. 關(guān)于開發(fā)環(huán)境和生產(chǎn)環(huán)境下的自定義 index.html 路徑問題,但是打包時容易出錯,無法正常打包,這一點(diǎn)看問題1 的報(bào)錯,有解決方法。(推薦)

下面是筆者在無 public 目錄情況下,遇到的 Vue 項(xiàng)目開發(fā)問題集錦。

如下問題出現(xiàn)的前提:Vue項(xiàng)目創(chuàng)建后,沒有 public 目錄的情況:

問題 1 新建 public 目錄,修改其打包路徑問題

(已解決,記錄一下解決過程)

開發(fā)環(huán)境index.html文件路徑配置

新建了 public 目錄,并將 index.html 目錄,移動到 public 目錄內(nèi),并修改 webpack.dev.conf.js開發(fā)環(huán)境配置文件)文件內(nèi)的 HtmlWebpackPlugin 配置,如下所示

Vue 腳手架(打包工具)的理解 - 配置文件理解

 new HtmlWebpackPlugin({
      filename: 'index.html',
      template: './public/index.html',
      inject: true
    }),

成功在本地開發(fā)環(huán)境運(yùn)行成功(cnpm run dev),并顯示在本地瀏覽器上,在webpack.prod.conf.js 文件(生產(chǎn)環(huán)境配置文件)內(nèi)設(shè)置了一樣的配置。

當(dāng)然筆者不保證是一樣的配置路徑,筆者這里的是相對路徑配置,所以如果你打包時,會出現(xiàn)如下報(bào)錯,那么仔細(xì)研究下,路徑問題,到底是'./public/index.html'還是 '../public/index.html'

報(bào)錯:

Vue 腳手架(打包工具)的理解 - 配置文件理解

ERROR in   Error: Child compilation failed:
  Entry module not found: Error: Can't resolve 'E:\VueProject\public\index.html' in 'E:\VueProject\testproject':
  Error: Can't resolve 'E:\VueProject\public\index.html' in 'E:\VueProject\testpriject'

問題2 favicon 圖標(biāo)的放置問題

如果有 public 目錄,那么正常情況下,我們都能將 favicon 圖標(biāo)放置在 public 目錄下,當(dāng)然這一點(diǎn)在 index.html 文件內(nèi)需要我們配置好 favicon 的路徑,如下:

<link rel="icon" href="<%= BASE_URL %>favicon.ico">

但是很遺憾,我們無法如此,會遇到報(bào)錯 Vue Template execution failed: ReferenceError: BASE_URL is not defined

當(dāng)然,我們也不用這么麻煩,只需要將 favicon.ico 的圖標(biāo)文件,放到 static 文件就行了,打包的時候,就不會出錯了,當(dāng)然,這里筆者的 index.html 配置如下所示:

<link rel="icon" href="<%= htmlWebpackPlugin.options.url %>/static/favicon.ico">

不是所謂的

<link rel="icon" href="<%= htmlWebpackPlugin.options.url %>favicon.ico">

當(dāng)然,如果實(shí)在是強(qiáng)迫癥的,想要將其圖標(biāo)文件放到 public 目錄下,可以研究下 CopyWebpackPlugin 插件

Vue 腳手架(打包工具)的理解 - 配置文件理解
該插件的作用在于,收集靜態(tài)文件到指定的打包路徑位置,所以應(yīng)該可以打包 public 目錄下的靜態(tài)文件。如下解決問題2 參考鏈接4 02-02模塊化作業(yè)

Vue 腳手架(打包工具)的理解 - 配置文件理解

當(dāng)然,上面只是啟發(fā),具體的實(shí)現(xiàn)是在 webpack.prod.conf.js 文件(生產(chǎn)環(huán)境配置文件),開發(fā)環(huán)境的配置也是如此(webpack.dev.conf.js

1、生產(chǎn)環(huán)境打包配置 webpack.prod.conf.js

(注意看是 config.build.assetsSubDirectory

// copy custom static assets
    new CopyWebpackPlugin([
      {
        from: path.resolve(__dirname, '../static'),
        to: config.build.assetsSubDirectory,
        ignore: ['.*']
      },
      {
        from: path.resolve(__dirname, '../public'),
        to: config.build.assetsSubDirectory,
        ignore: ['.*']
      }
    ])

筆者發(fā)現(xiàn)了一點(diǎn)不好的是,如果將 index.html 和 favicon.ico 文件放到 public 目錄內(nèi),那么打包時,也會順便把 index.html 復(fù)制兩份,一份是在 Vue 打包的 dist 根目錄下的,一份是在 static 目錄內(nèi),有些冗余不規(guī)范且麻煩,要手動刪除。
Vue 腳手架(打包工具)的理解 - 配置文件理解

所以這里還需要配置一個忽略 index.html 的設(shè)置。如下:

// copy custom static assets
    new CopyWebpackPlugin([
      {
        from: path.resolve(__dirname, '../static'),
        to: config.build.assetsSubDirectory,
        ignore: ['.*']
      },
      {
        from: path.resolve(__dirname, '../public'),
        to: config.build.assetsSubDirectory,
        ignore: ['index.html']
      }
    ])

2、開發(fā)環(huán)境 webpack.dev.conf.js 配置:

(注意看是 config.dev.assetsSubDirectory

// copy custom static assets
    new CopyWebpackPlugin([
      {
        from: path.resolve(__dirname, '../static'),
        to: config.dev.assetsSubDirectory,
        ignore: ['.*']
      },
      {
        from: path.resolve(__dirname, '../public'),
        to: config.dev.assetsSubDirectory,
        ignore: ['index.html']
      }
    ])

關(guān)于自動清除上一次打包遺留的文件,我覺得不需要去專門安裝 CleanWebpackPlugin,打包時(cnpm run build 、cnpm run build:prod),Vue 腳手架會自動刪除上一次的打包文件,所以完全沒必要。

assetsPublicPath 按默認(rèn)的就好,默認(rèn)是 '/'

這里的 assetsPublicPath 配置關(guān)于 public 目錄完全沒有關(guān)聯(lián)的,關(guān)聯(lián)的是 URL前端的公共路徑,所以有點(diǎn)誤導(dǎo)人。

Vue 腳手架(打包工具)的理解 - 配置文件理解

解決問題2 參考鏈接

1. Vue Template execution failed: ReferenceError: BASE_URL is not defined

2. Template execution failed ReferenceError BASE_URL is not defined

3. Template execution failed: ReferenceError: BASE_URL is not defined

4. 02-02模塊化作業(yè)

5. webpack入門(六)——html-webpack-plugin

6. vuecli3.0 htmlWebpackPlugin 報(bào) ReferenceError: BASE_URL is not defined 錯誤

7. vue-cli腳手架項(xiàng)目中public和src/assets的區(qū)別

8. Vue CLI 3 public 目錄沒用嗎

9. vue@cli3項(xiàng)目模板怎么使用public目錄下的靜態(tài)文件

10. vue項(xiàng)目中的public、static及指定不編譯文件問題怎么解決

11. 我創(chuàng)建的項(xiàng)目里沒有public文件

12. vue項(xiàng)目打包需要修改的路徑問題

13. vue項(xiàng)目中引用public下面的文件

14. vue-cli2、vue-cli3腳手架詳細(xì)講解

對本問題2 無效的參考鏈接

1. vue項(xiàng)目設(shè)置瀏覽器icon圖標(biāo)

2. vue中添加favicon 圖標(biāo) (3種方法)

3. 大白話Vue之publicPath

4. vue項(xiàng)目中配置favicon圖標(biāo)

5. vue項(xiàng)目添加favicon的幾種方式文章來源地址http://www.zghlxwxcb.cn/news/detail-464620.html

到了這里,關(guān)于Vue 腳手架(打包工具)的理解 - 配置文件理解的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • vue 腳手架文件結(jié)構(gòu)及加載過程淺談

    1.1? 全局安裝 @vue/cli? npm install -g?@vue/cli 1.2 切換到創(chuàng)建項(xiàng)目的目錄,執(zhí)行 vue create projectname 1.3 選擇符合自己要求的項(xiàng)進(jìn)行Y/N,最終生成項(xiàng)目文件 package.json :這是一個重要的配置文件,用于定義項(xiàng)目的依賴項(xiàng)、腳本命令和其他元數(shù)據(jù)。它包含了項(xiàng)目的名稱、版本號、作者等

    2024年02月11日
    瀏覽(24)
  • 使用Vue腳手架配置代理服務(wù)器的兩種方式

    使用Vue腳手架配置代理服務(wù)器的兩種方式

    本文主要介紹使用Vue腳手架配置代理服務(wù)器的兩種方式 注意:Vue腳手架給我們提供了兩種配置代理服務(wù)器的方式,各有千秋,使用的時候只能二選一,不能同時使用 除了cros和jsonp,還有一種代理方式,這種用的相對來說也很多, 一般代理服務(wù)器 這個概念很好理解,相當(dāng)于生

    2024年02月02日
    瀏覽(27)
  • 【vue2第八章】工程化開發(fā)和使用腳手架和文件結(jié)構(gòu)

    【vue2第八章】工程化開發(fā)和使用腳手架和文件結(jié)構(gòu)

    vue工程化開發(fā) 使用腳手架VUE CLI: 1,核心包傳統(tǒng)開發(fā)模式:基于js/html/css直接引入核心包開發(fā)vue。 2,工程化開發(fā)?;跇?gòu)建工具如(webpack)的環(huán)境中開發(fā)vue。 vue cli是什么: vue cli是一個vue官方提供的一個全局的命令工具. 可以幫助我們快速的創(chuàng)建一個開發(fā)vue項(xiàng)目的標(biāo)準(zhǔn)化基礎(chǔ)

    2024年02月10日
    瀏覽(26)
  • 【Vue3 知識第二講】Vue3新特性、vue-devtools 調(diào)試工具、腳手架搭建

    【Vue3 知識第二講】Vue3新特性、vue-devtools 調(diào)試工具、腳手架搭建

    1.1 重寫雙向數(shù)據(jù)綁定 1.1.1 Vue2 基于Object.defineProperty() 實(shí)現(xiàn) 數(shù)字化管理平臺 Vue3+Vite+VueRouter+Pinia+Axios+ElementPlus 權(quán)限系統(tǒng)-商城 個人博客地址 把 Vue 中的核心方法 defineReactive 做一些簡化如下: Vue通過defineReactive方法實(shí)現(xiàn)對需要觀察的對象的每個屬性進(jìn)行監(jiān)控。dep對象就相當(dāng)于一

    2024年02月10日
    瀏覽(17)
  • Vue學(xué)習(xí)計(jì)劃-Vue2--VueCLi(二)vuecli腳手架創(chuàng)建的項(xiàng)目內(nèi)部主要文件分析

    Vue學(xué)習(xí)計(jì)劃-Vue2--VueCLi(二)vuecli腳手架創(chuàng)建的項(xiàng)目內(nèi)部主要文件分析

    1. 補(bǔ)充: 什么叫單文件組件? 一個文件中只有一個組件 vue-cli 創(chuàng)建的項(xiàng)目中, .vue 的文件都是單文件組件,例如 App.vue 2. 進(jìn)入分析 1. package.json : 項(xiàng)目依賴配置文件: 如圖,我們說主要的屬性: name : 項(xiàng)目的名稱 version : 項(xiàng)目版本 scripts : 腳本入口 serve : 啟動項(xiàng)目命令 build :

    2024年02月04日
    瀏覽(35)
  • 10-Vue技術(shù)棧之腳手架配置代理(解決跨域問題)+ GitHub用戶搜索案例

    10-Vue技術(shù)棧之腳手架配置代理(解決跨域問題)+ GitHub用戶搜索案例

    ? 在vue.config.js中添加如下配置: 說明: 優(yōu)點(diǎn):配置簡單,請求資源時直接發(fā)給前端(8080)即可。 缺點(diǎn):不能配置多個代理,不能靈活的控制請求是否走代理。 工作方式:若按照上述配置代理,當(dāng)請求了前端不存在的資源時,那么該請求會轉(zhuǎn)發(fā)給服務(wù)器 (優(yōu)先匹配前端資

    2024年02月07日
    瀏覽(20)
  • 【vue腳手架配置代理+github用戶搜索案例+vue項(xiàng)目中常用的發(fā)送Ajax請求的庫+slot插槽】

    【vue腳手架配置代理+github用戶搜索案例+vue項(xiàng)目中常用的發(fā)送Ajax請求的庫+slot插槽】

    下載axios 引用axios: import axios from \\\'axios\\\' 解決跨域方法: 1 cors: 2 jsonp:用的少,只能解決get請求的跨域問題 3 配置一個代理服務(wù)器 配置一個代理服務(wù)器方式一: 開啟8080代理服務(wù)器方式:nginx(較復(fù)雜,需借助后端知識) 、vue-cli(重點(diǎn))。 1 第一步:先通過cmd打開兩臺服務(wù)器 打

    2024年01月20日
    瀏覽(26)
  • 通過 http-server 運(yùn)行剛打包出來的腳手架項(xiàng)目

    通過 http-server 運(yùn)行剛打包出來的腳手架項(xiàng)目

    這里 我打包了自己的vue項(xiàng)目 react其實(shí)也一樣 如果我直接 打開打包出來的 dist 下面的index.html 會出現(xiàn)白屏資源找不到 或者跨域等問題 這個問題其實(shí)配個nginx也能解決 但是其實(shí)如果只是想做個測試 nginx就太麻煩了 我們可以通過npm指令 全局安裝一個http-server 終端執(zhí)行 安裝好依賴

    2024年02月09日
    瀏覽(22)
  • vue-cli腳手架創(chuàng)建創(chuàng)建的項(xiàng)目打包后無法正常打開報(bào) Failed to load resource: net::ERR_FILE_NOT_FOUND錯誤

    vue-cli腳手架創(chuàng)建創(chuàng)建的項(xiàng)目打包后無法正常打開報(bào) Failed to load resource: net::ERR_FILE_NOT_FOUND錯誤

    親愛的小伙伴們,你們最近是否有遇到用使用最新的腳手架打包項(xiàng)目后index.html文件無法正常打開,然后控制臺報(bào)錯的情況呢,不要擔(dān)心,這個坑今天被我踩到了并且被我解決了,下邊就讓我來給大家分享一下經(jīng)驗(yàn)吧! 1.找到vue.config.js文件,進(jìn)行如下配置 即添加一行配置:

    2024年02月15日
    瀏覽(100)
  • Vue(Vue腳手架)

    Vue(Vue腳手架)

    Vue官方提供腳手架平臺選擇最新版本: 可以相加兼容的標(biāo)準(zhǔn)化開發(fā)工具(開發(fā)平臺) 禁止:最新的開發(fā)技術(shù)版本和比較舊版本的開發(fā)平臺 ? Vue CLI ??? Vue.js 開發(fā)的標(biāo)準(zhǔn)工具 https://cli.vuejs.org/zh/ c:cmmand l:line i:interface 命令行接口工具? ?在cmd中查看vue是否存在cli ?全局安

    2024年02月01日
    瀏覽(20)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包