成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

webpack從0到1超詳細(xì)超基礎(chǔ)學(xué)習(xí)教程

Tychio / 3144人閱讀

摘要:在進(jìn)行的學(xué)習(xí)之前,第一步就是要讓大家認(rèn)識(shí)一下中四個(gè)核心的概念。找到這個(gè)起始點(diǎn),再從起始點(diǎn)出發(fā)來看依賴的文件,每個(gè)依賴都將被處理,最后輸出。

概念

自己是一個(gè)一聽到webpack就頭大,看著一堆不知道那是什么玩意的東西總覺得自己做好前端就行了,但是在使用vue-cli的時(shí)候總覺得要改其中的一些東西進(jìn)行項(xiàng)目初始化的時(shí)候能夠更好使用!所以想要根據(jù)官方文檔進(jìn)行一個(gè)webpack的教程,寫這些主要還是為了進(jìn)行一個(gè)系統(tǒng)的學(xué)習(xí),幫助在webpack的道路上迷茫的同學(xué)們。

在進(jìn)行webpack的學(xué)習(xí)之前,第一步就是要讓大家認(rèn)識(shí)一下webpack中四個(gè)核心的概念。

四個(gè)核心概念
1. 入口(entry)

相信這個(gè)字面意思大家都沒有問題,這個(gè)就是指定webpack的入口文件,指定其從什么地方開始。找到這個(gè)起始點(diǎn),再從起始點(diǎn)出發(fā)來看依賴的文件,每個(gè)依賴都將被處理,最后輸出。

示例:

// webpack.config.js
module.exports = {
    entry: "./src/index.js"
}

上述代碼以及入口是簡單的配置,是一個(gè)簡單的單入口,是一種簡寫方式,具體的多入口配置方式如下。

示例:

// webpack.config.js
module.exports = {
    entry: {
        fistpage: "./src/index.js",
        nextpage: "./src/next.js",
        lastpage: "./src/last.js",
    }
}
2. 輸出(output)

有入口就肯定有出口,這里自然就是定義文件輸出的位置,以及輸出文件的名字和目錄,和入口一樣,你可以定義一個(gè)output段來配置文件的輸出。

當(dāng)然,輸出的文件入口指定一個(gè)就可以了,區(qū)分的只是文件的名字即可,因此在這里只給大家介紹一種,輸入時(shí)候的名字是什么,則輸出的文件名字就是什么即可,只需要改filename為[name].js。

示例:

// webpack.config.js
const path = require("path")
module.exports={
    entry: "./src/index.js",
    output: {
        path: path.resolve(_dirname, "dist"),
        filename: "first-webpack.js"
    }
};

解釋一下上述代碼,首先我們先倒入一個(gè)nodejs一個(gè)操作文件路徑的核心模塊path,然后使用path進(jìn)行文件路徑操作,將生成的文件存放在dist目錄,生成的文件名字為first-webpack.js。

3. loader

webpack本身只能夠理解一些js文件,但是loader可以做到讓其去處理一些非js文件,比如我們的css文件,圖片文件,loader可以將這些文件轉(zhuǎn)換成webpack能夠處理的有效模塊,所以因?yàn)樗拇嬖?,你import導(dǎo)入進(jìn)來任何類型模塊。

示例:

// webpack.config.js
const path = require("path")
module.exports = {
    entry: "./src/index.js",
    output: {
        path: path.resolve(_dirname, "dist"),
        filename: "first-webpack.js"
    },
    module: {
        rules: [
            {test: /.txt$/, use: "raw-loader"}
        ]
    }
}

以上,在配置loader的時(shí)候,要新建一個(gè)module的對象,在其對象中來定義rules屬性,里面存在兩個(gè)必要的屬性,test和use,其中

test表示要使用loader進(jìn)行轉(zhuǎn)換的一個(gè)或者一些文件,在這里是指被導(dǎo)入的模塊的后綴名為.txt文件

use則表示對于被導(dǎo)入的此類的文件,我們會(huì)使用raw-loader轉(zhuǎn)換一下,在進(jìn)行打包

注:一定要注意此項(xiàng)配置是在module對象下的rules下進(jìn)行配置

這里再做一個(gè)演示,比如我們平時(shí)在項(xiàng)目中使用css,但是前面也說了在webpack中可能不會(huì)識(shí)別css,因此這里要使用loader加載css文件,但是首先要安裝對應(yīng)的loader進(jìn)行加載css文件,這里使用css-loader,安裝命令

npm install --save-dev css-loader

然后在webpack中要配置,指定css文件使用css-loader加載

module.exports = {
    rules: [
        {test: /.css$/, use: "css-loader"}
    ]
}

還有其它的方式可以使用,作用是相同的,就是使用內(nèi)聯(lián)或者cli

4. 插件(plugins)

loader是用來轉(zhuǎn)換某些類型的模塊,而插件則用來去執(zhí)行更廣的任務(wù),這個(gè)功能非常強(qiáng)大,可以用來處理各種任務(wù)。當(dāng)然,使用方法也是很簡單,直接將npm安裝的插件通過require引入進(jìn)來即可,然后在配置文件中將其添加進(jìn)plugins數(shù)組中,也可以自定義,當(dāng)然也可以一個(gè)插件使用其不同的功能多次使用,但是相應(yīng)的你要new一個(gè)實(shí)例。

示例:

// webpack.config.js
const path = require("path")
const webpack = require("webpack")
const HtmlWebpackPlugin = require("html-webpack-plugin")
module.exports = {
    entry: "./src/index.js",
    output: {
        path: path.resolve(_dirname,"dist"),
        filename: "first-webpack.js"
    },
    module: {
        rules: [
            {test: /.txt$/, use: "raw-loader"}
        ]
    },
    plugins: [
        new webpack.optimize.UgifyJsPlugin(),
        new HtmlWebpackPlugin({template: "./src/index.html"})
    ]
}
配置

當(dāng)然,除了上述四個(gè)核心概念,這里還有一個(gè)配置,你可以配置不同的模式來進(jìn)行webpack內(nèi)置優(yōu)化,可以選擇development或者production,配置不同的mode對應(yīng)著不同的文件以及plugins插件進(jìn)行相應(yīng)的模式優(yōu)化。

module.exports = {
    mode: "development"
}
模塊

想必大家肯定知道js或者自己熟悉的一些模塊,但是到底什么是webpack模塊相比還是比較陌生,webpack模塊主要的作用就是能夠使用各種方式表達(dá)自己和其他模塊的依賴關(guān)系。

比如:

import語句

require()語句

樣式文件的@import語句

url或者src的一些鏈接

可支持基本上各種模塊,比如我們ts,sass以及l(fā)ess文件等,允許各種技術(shù)使用webpack進(jìn)行,在webpack中對于模塊的路徑有三種形式。

絕對路徑:import "/home/src/file"

相對路徑:import "./file"

模塊路徑:import "module",這個(gè)特別說明一下,這里的模塊將會(huì)在resolve.modules指定目錄進(jìn)行搜索

webpack還有一個(gè)重要的環(huán)節(jié),就是依賴圖,在webpack中,一個(gè)文件依賴另一個(gè)文件,就稱為這兩個(gè)文件有著依賴關(guān)系,所以在用圖像資源的時(shí)候,我們可以為圖像與文件中間建立依賴關(guān)系,這樣在打包文件的時(shí)候,就能夠?qū)D片資源也能夠打包,可以使用import和require將圖片打包進(jìn)來

這些用來我們?nèi)腴Twebpack已經(jīng)足夠了,當(dāng)然webpack不僅僅是這些,還有著很多更高級(jí)的用法,但是這里僅僅是webpack的一個(gè)入門,讓大家能夠知道webpack的一些具體的作用,如果大家還想了解webpack的其他內(nèi)容,可以在下面留言,如果大家需要我會(huì)再出一個(gè)大家需要的教程,謝謝!

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/95294.html

相關(guān)文章

  • webpack01詳細(xì)基礎(chǔ)學(xué)習(xí)教程

    摘要:在進(jìn)行的學(xué)習(xí)之前,第一步就是要讓大家認(rèn)識(shí)一下中四個(gè)核心的概念。找到這個(gè)起始點(diǎn),再從起始點(diǎn)出發(fā)來看依賴的文件,每個(gè)依賴都將被處理,最后輸出。 概念 自己是一個(gè)一聽到webpack就頭大,看著一堆不知道那是什么玩意的東西總覺得自己做好前端就行了,但是在使用vue-cli的時(shí)候總覺得要改其中的一些東西進(jìn)行項(xiàng)目初始化的時(shí)候能夠更好使用!所以想要根據(jù)官方文檔進(jìn)行一個(gè)webpack的教程,寫這些主...

    douzifly 評(píng)論0 收藏0
  • webpack01詳細(xì)基礎(chǔ)學(xué)習(xí)教程

    摘要:在進(jìn)行的學(xué)習(xí)之前,第一步就是要讓大家認(rèn)識(shí)一下中四個(gè)核心的概念。找到這個(gè)起始點(diǎn),再從起始點(diǎn)出發(fā)來看依賴的文件,每個(gè)依賴都將被處理,最后輸出。 概念 自己是一個(gè)一聽到webpack就頭大,看著一堆不知道那是什么玩意的東西總覺得自己做好前端就行了,但是在使用vue-cli的時(shí)候總覺得要改其中的一些東西進(jìn)行項(xiàng)目初始化的時(shí)候能夠更好使用!所以想要根據(jù)官方文檔進(jìn)行一個(gè)webpack的教程,寫這些主...

    niceforbear 評(píng)論0 收藏0
  • 詳細(xì)webpack原理解讀

    摘要:生成文件,是模塊構(gòu)建的終點(diǎn),包括輸出文件與輸出路徑。這里配置了處理各模塊的,包括預(yù)處理,編譯,圖片處理。各插件對象,在的事件流中執(zhí)行對應(yīng)的方法。修改改成引入模塊在目錄下執(zhí)行, webpack原理解讀 本文抄自《深入淺出webpack》,建議想學(xué)習(xí)原理的手打一遍,操作一遍,給別人講一遍,然后就會(huì)了在閱讀前希望您已有webpack相關(guān)的實(shí)踐經(jīng)驗(yàn),不然讀了也讀不懂 本文閱讀需要幾分鐘,理解需...

    wenhai.he 評(píng)論0 收藏0
  • ELSE 技術(shù)周刊(2017.11.13期)

    摘要:騰訊空間超分辨率技術(shù)為用戶節(jié)省流量,處理效果和速度超谷歌技術(shù)在的標(biāo)準(zhǔn)下,處理速度在提升了,處理效果也有明顯提升。此外,也是業(yè)界首次實(shí)現(xiàn)移動(dòng)端使用深度神經(jīng)網(wǎng)絡(luò)進(jìn)行超分辨率,并保證圖片能夠?qū)崟r(shí)進(jìn)行處理。值得一提的是的對應(yīng)指標(biāo)也在名單里。 團(tuán)隊(duì)分享 魔幻語言 JavaScript 系列之 call、bind 以及上下文 從一行代碼來看看 JavaScript 是一門多么魔幻的語言,順便談?wù)?...

    caohaoyu 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<