webpack入門學習筆記

webpack是一個前端模塊構建工具,它能夠將原本一些有依賴關係的文件(源代碼)構建成靜態資源。

1.webpack安裝

$ npm install webpack -g    //進行全局安裝
$ npm install webpack --save-dev  //進行項目本地安裝
$ npm install webpack-dev-server --save-dev  //安裝webpack-dev-server工具

2.基本工作原理

webpack的基本工作原理是,首先要選定一個入口文件,這個入口文件可能要依賴其他的文件模塊(如require了一個其他的模塊),而那些被依賴的模塊可能又要依賴其他模塊,這樣一層一層的遞推。webpack的作用就是從入口文件開始,將存在依賴關係的各個文件構建成一個靜態資源。

在一般的項目開發過程中都有構建過程。一個項目可能的基本項目結構爲:首先在src目錄下存放開發者編寫的源代碼,node-modules中存放安裝的各個模塊,而build目錄下存放的就是構建好的資源。webpack的工作過程就是將src中的源代碼構建成build下的靜態資源。

3.基本使用

比如src目錄下存在一個app.js入口文件,而這個文件有依賴於test.js文件,要想將這些源代碼構建成一個靜態資源app.budle.js文件,只需執行下面的命令:

webpack ./app.js app.budle.js

webpack的第一個參數是入口文件的路徑,第二個參數是要構建的文件名,默認情況下構建後的文件在當前目錄下。


4.使用webpack.config.js

爲了不必每次構建都在命令行中輸入大量的代碼,可以使用webpack.config.js配置文件。這樣每次要進行構建時,只需要執行命令webpackwebpack便會自動對當前目錄下的webpack.config.js文件進行解析,從而自動完成構建。

一個基本的webpack.config.js的代碼及註釋如下:

module.exports = {    
  entry: './src/app.js',   //entry字段指定入口文件
  output: {  //output字段指定構建後的文件
     path: './bin',   //path字段指定構建後文件的位置
     filename: 'app.bundle.js'   //filename字段指定構建後的文件名
  }
};

使用上面的配置文件和在命令行構建效果相同,但是更加方便。


5.使用loader

webpack只能解析JavaScript代碼。但是很多時候項目源代碼中不只有JavaScript代碼,還可能有css樣式代碼、coffeScript等其他代碼,這個時候就需要使用loader加載其他語言的轉化模塊,將其他代碼轉換成webpack能夠使用的JavaScript代碼。

一般的loader命名都是語言名xxx-loader。比如能夠將ES6轉換成ES5的模塊babel,對應的loader名就叫babel-loader

比如我們要構建的文件中存在.css後綴名的文件,這些文件使用css代碼編寫的。構建這種項目的時候webpack.config,js文件內容如下:

module.exports = {
    entry: "./entry.js",
    output: {
        path: __dirname,
        filename: "bundle.js"
    },
    module: {
        loaders: [
            { test: /\.css$/, loader: "style!css" }   //匹配.css文件,使用對應的loaders
        ]
    }
};

loaders字段中指定轉換,可以指定多個。這裏指定了匹配正則表達式/\.css$/的文件及後綴名爲.css的文件,使用css-loaderstyle-loader進行轉換。當然使用之前需要先安裝這兩個loadernpm install css-loader style-loader


6.webpack-dev-server

webpack-dev-server是一個小型Express服務器,使用webpack-dev-middlerware構建。開發中可以用它來啓動一個服務器,更新代碼的時候界面會動態的進行重新渲染。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章