最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Vue + Webpack + Vue-loader學(xué)習(xí)教程之相關(guān)配置篇

 更新時(shí)間:2017年03月14日 10:52:57   作者:Terry√  
這篇文章主要介紹了關(guān)于Vue + Webpack + Vue-loader的相關(guān)配置篇,文中通過(guò)示例代碼介紹的非常詳細(xì),相信對(duì)大家具有一定的參考價(jià)值,需要的朋友們下面來(lái)一起看看吧。

前言

之前已經(jīng)介紹過(guò)了Vue + Webpack + Vue-loader的相關(guān)功能介紹,大家可以點(diǎn)擊這篇文章了解詳情。下面就來(lái)看看相關(guān)配置篇,感興趣的可以參考學(xué)習(xí)。

使用預(yù)處理器

在 Webpack 中,所有的預(yù)處理器需要和一個(gè)相應(yīng)的加載器一同使用。vue-loader 允許你用其它的 Webpack 加載器去處理 Vue 組件一部分代碼。它會(huì)根據(jù) lang 屬性自動(dòng)用適當(dāng)?shù)募虞d器去處理。

CSS

例如,我們編譯用 SASS 編譯 <style> 標(biāo)簽:

npm install sass-loader node-sass --save-dev
<style lang="sass">
 /* 這里寫(xiě)一些 sass 代碼 */
</style>

在引擎內(nèi),首先,<style> 標(biāo)簽內(nèi)的內(nèi)容會(huì)被 sass-loader 編譯,然后再被進(jìn)一步處理。

JavaScript

默認(rèn)情況下,Vue 組件內(nèi)的所有 JavaScript 會(huì)被 babel-loader 處理。當(dāng)然,你也可以更改:

npm install coffee-loader --save-dev
<script lang="coffee">
 # 這里寫(xiě)一些 coffeescript!
</script>

Templates

處理模板的過(guò)程有點(diǎn)不同,因?yàn)榇蠖?Webpack 模板加載器(比如 jade-loader )會(huì)返回一個(gè)模板處理函數(shù),而不是被編譯過(guò)的 HTML 字符串。我們只要安裝 jade ,而不是 jade-loader :

npm install jade --save-dev
<template lang="jade">
div
 h1 Hello world!
</template>

重要提示: 如果你使用 vue-loader@<8.2.0, 你也需要安裝 template-html-loader.

內(nèi)聯(lián)加載請(qǐng)求

在 lang 屬性上,你能使用 Webpack loader requests :

<style lang="sass?outputStyle=expanded">
 /* use sass here with expanded output */
</style>

但是,注意這樣只適用特定的 Webpack,并不兼容 Browserify 和 vueify。 如果你想讓你的 Vue 組件發(fā)布成一個(gè)第三方組件的話,避免這樣使用

URL資源處理

默認(rèn)情況,vue-loader 是自動(dòng)用 css-loader 和 Vue 組件編譯器來(lái)處理樣式和模板文件的。在處理過(guò)程中,所有的資源 URL 比如<img src="..."> , background: url(...) 和 CSS @import 都是被當(dāng)做依賴(lài)的模塊來(lái)處理。

例如,url(./image.png) 被轉(zhuǎn)譯成 require('./image.png') 。

<img src="../image.png">

如上會(huì)被再轉(zhuǎn)譯成:

createElement('img', { attrs: { src: require('../image.png') }})

因?yàn)?.png 并不是個(gè) JavaScript 文件,你需要配置 Webpack 使用 file-loader 或者 url-loader 處理它們。項(xiàng)目腳手架工具 vue-cli 也能幫你配置這些。

這樣做的好處是:

  1. file-loader 允許你指定在哪里復(fù)制和存放靜態(tài)資源文件 ,以及用版本哈希值命名從而更好利用緩存。 這意味著,可以把圖片放到 *.vue 文件旁邊,可使用相對(duì)路徑,而不需要擔(dān)心發(fā)布時(shí)候的 URL。使用適當(dāng)?shù)呐渲?,Webpack 在打包輸出的時(shí)候,會(huì)自動(dòng)把文件路徑轉(zhuǎn)為正確的 URL。
  2. url-loader 允許你內(nèi)聯(lián) base-64 數(shù)據(jù)格式的URL資源,如果小于設(shè)定的閾值。這樣可以減少 HTTP 請(qǐng)求小文件的數(shù)量。如果文件大于這個(gè)閾值。會(huì)自動(dòng)it automatically falls back to file-loader.

加載器高級(jí)配置

若你想自定義載器的配置,不要 vue-loader 來(lái)推斷。 或你只想覆蓋加載器內(nèi)置的配置。 那就這樣做,在你 Webpack 配置文件里,添加一個(gè) vue 塊,并指定 loaders 選項(xiàng):

Webpack 1.x Example:

// webpack.config.js
module.exports = {
 // other options...
 module: {
 loaders: [
  {
  test: /\.vue$/,
  loader: 'vue'
  }
 ]
 },
 // vue-loader 配置
 vue: {
 // ... 其他 vue 選項(xiàng)
 loaders: {
  // 用 coffee-loader 加載所有沒(méi)有 "lang" 屬性的 <script> 
  js: 'coffee',
  // 直接把 <template> 作為 HTML 字符串來(lái)加載,不需先用 vue-html-loader 處理。
  html: 'raw'
 }
 }
}

Webpack 2.x (^2.1.0-beta.25):

module.exports = {
 // 其他選項(xiàng)...
 module: {
 // module.rules 是和版本1.x中的 module.loaders 是相同的
 rules: [
  {
  test: /\.vue$/,
  loader: 'vue',
  // vue-loader 選項(xiàng)在這里配置
  options: {
   loaders: {
   // ...
   }
  }
  }
 ]
 }
}

這里是個(gè)實(shí)際的加載器配置高級(jí)用法的實(shí)例 提取組件內(nèi)的 CSS 到單獨(dú)文件。

提取CSS到單獨(dú)文件

如下是提取所有程序的 Vue 組件中的 CSS 到一個(gè)單獨(dú)的 CSS 文件的配置:

Webpack 1.x

npm install extract-text-webpack-plugin --save-dev
// webpack.config.js
var ExtractTextPlugin = require("extract-text-webpack-plugin")

module.exports = {
 // other options...
 module: {
 loaders: [
  {
  test: /\.vue$/,
  loader: 'vue'
  },
 ]
 },
 vue: {
 loaders: {
  css: ExtractTextPlugin.extract("css"),
  // 你也能包含 <style lang="less"> 或其他語(yǔ)言
  less: ExtractTextPlugin.extract("css!less")
 }
 },
 plugins: [
 new ExtractTextPlugin("style.css")
 ]
}

Webpack 2.x (^2.1.0-beta.25)

npm install extract-text-webpack-plugin@2.x --save-dev
// webpack.config.js
var ExtractTextPlugin = require("extract-text-webpack-plugin")

module.exports = {
 // 其他選項(xiàng)...
 module: {
 rules: [
  {
  test: /\.vue$/,
  loader: 'vue',
  options: {
   loaders: {
   css: ExtractTextPlugin.extract({
    loader: 'css-loader',
    fallbackLoader: 'vue-style-loader' // <- this is a dep of vue-loader, so no need to explicitly install if using npm3
   })
   }
  }
  }
 ]
 },
 plugins: [
 new ExtractTextPlugin("style.css")
 ]
}

總結(jié)

好了,以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)腳本之家的支持。

相關(guān)文章

  • Element 的 el-table 表格實(shí)現(xiàn)單元格合并功能

    Element 的 el-table 表格實(shí)現(xiàn)單元格合并功能

    這篇文章主要介紹了Element 的 el-table 表格實(shí)現(xiàn)單元格合并功能,本文通過(guò)示例代碼給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧
    2024-07-07
  • vue左右滑動(dòng)選擇日期組件封裝的方法

    vue左右滑動(dòng)選擇日期組件封裝的方法

    這篇文章主要為大家詳細(xì)介紹了vue左右滑動(dòng)選擇日期組件封裝的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • Vue中插槽slot的用法詳解

    Vue中插槽slot的用法詳解

    插槽(Slot)是Vue.js中一個(gè)非常重要的概念,它極大地提高了組件的復(fù)用性和靈活性,通過(guò)插槽,我們可以自定義組件的內(nèi)容,使其能夠適應(yīng)不同的場(chǎng)景,本文將結(jié)合實(shí)際案例,詳細(xì)介紹Vue中插槽的基本用法、類(lèi)型以及高級(jí)技巧,需要的朋友可以參考下
    2024-11-11
  • Vue?事件處理函數(shù)的綁定示例詳解

    Vue?事件處理函數(shù)的綁定示例詳解

    這篇文章主要為大家介紹了Vue?事件處理函數(shù)的綁定示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-02-02
  • vue中style設(shè)置scoped后部分樣式不生效的解決

    vue中style設(shè)置scoped后部分樣式不生效的解決

    這篇文章主要介紹了vue中style設(shè)置scoped后部分樣式不生效的解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-09-09
  • Vue axios與Go Frame后端框架的Options請(qǐng)求跨域問(wèn)題詳解

    Vue axios與Go Frame后端框架的Options請(qǐng)求跨域問(wèn)題詳解

    這篇文章主要介紹了Vue axios與Go Frame后端框架的Options請(qǐng)求跨域問(wèn)題詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • Vue2利用echarts繪制折線圖,餅圖和大圖

    Vue2利用echarts繪制折線圖,餅圖和大圖

    這篇文章主要為大家詳細(xì)介紹了Vue2如何利用echarts繪制折線圖,餅圖和大圖,文中的示例代碼簡(jiǎn)潔易懂,具有一定的借鑒價(jià)值,需要的可以參考一下
    2023-04-04
  • vue ElementUI的from表單實(shí)現(xiàn)登錄效果的示例

    vue ElementUI的from表單實(shí)現(xiàn)登錄效果的示例

    本文主要介紹了vue ElementUI的from表單實(shí)現(xiàn)登錄效果的示例,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • Vue中跨標(biāo)簽通信詳解

    Vue中跨標(biāo)簽通信詳解

    這篇文章主要為大家詳細(xì)介紹了介紹了Vue中跨標(biāo)簽通信的相關(guān)知識(shí),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-01-01
  • 基于Vue設(shè)計(jì)實(shí)現(xiàn)一個(gè)彈幕組件

    基于Vue設(shè)計(jì)實(shí)現(xiàn)一個(gè)彈幕組件

    這篇文章主要給大家分享一個(gè)開(kāi)發(fā)中常見(jiàn)的需求,接下來(lái)將為大家詳細(xì)介紹彈幕的實(shí)現(xiàn)以及設(shè)計(jì)思路一步一步描述出來(lái),希望大家能夠喜歡
    2023-06-06

最新評(píng)論

新沂市| 南华县| 新沂市| 资兴市| 甘孜| 马山县| 黑山县| 扬中市| 凉城县| 德保县| 南安市| 公主岭市| 南皮县| 宝应县| 昔阳县| 防城港市| 古浪县| 信宜市| 瑞金市| 贵溪市| 宁城县| 普兰县| 东安县| 林周县| 林甸县| 临泉县| 苍南县| 抚远县| 五常市| 南涧| 自治县| 义乌市| 内江市| 嫩江县| 内黄县| 什邡市| 工布江达县| 团风县| 东丽区| 大英县| 美姑县|