webpack基本使用

我的接觸前端並非好久,對於webpack倒是久仰大名,也難怪, 做爲一款優秀的模塊加載器兼打包工具,webpack近來風頭可謂一時無二,本身也想着學習並但願可以瞭解其工做方式和理念,拋開跟風不談,至少學習新的技術對本身是大有裨益的。javascript

webpack

引用一張webpack官網的圖片,做爲一款模塊打包器,webpack負責分析模塊間的依賴關係,隨即將模塊按照不一樣的加載器規則生成相對應的資源。咱們須要模塊化工具爲咱們作的,包括初始加載量少,按需加載,自定義打包邏輯等功能功能,webpack都可以知足,它的loader加載器能夠將各類類型的資源轉換成咱們所須要的模塊,其豐富的插件系統也讓咱們自定義需求。css

安裝html

//node 環境自沒必要多說
//全局安裝webpack
npm install -g webpack
//進入項目目錄
//生成package.json
npm init
//安裝webpack依賴
npm install webpack --save-dev

基本使用前端

//靜態頁面:index.html
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>webpack</title>
    </head>
    <body>
        <script type="text/javascript" src="bundle.js" ></script>
    </body>
</html>
//JS文件入口:entry.js
document.write("Hello world. ")

編譯 entry.js 並打包到 bundle.js,於命令行輸入java

webpack entry.js bundle.js

隨即你會看到命令行會顯示日誌,提示你打包成功,打開瀏覽器運行index.html,你會看到Hello world.node

配置webpack

var webpack=require("webpack");
module.exports={
    //頁面入口設置
    entry:"./entry.js",
    //入口文件輸出配置
    output:{
        path:__dirname,
        filename:"bundle.js"
    },
    module:{
        //加載器配置
        loaders:[
          //加載器可使用簡稱例如style,其具體規則可見webpack的resolveLoader.moduleTemplates api
          //.css 文件使用style-loader和css-loader加載器來處理
          { test: /\.css$/, loader: 'style-loader!css-loader' },
           //圖片文件使用url-loader加載器來處理,小於8kb的話則轉換成base64
          { test: /\.(png|jpg)$/, loader: 'url-loader?limit=8192'}
        ]
    },
    //插件項配置
    plugins:[
         //爲bundle.js頭部添加註釋信息     
        new webpack.BannerPlugin("this file is created by cala")
    ]
}

webpack.config.js配置基本上存在於每個使用webpack項目中,做爲一個配置項,告訴webpack它的具體功能,包括加載器做用與插件項的功能,全部的加載器都是經過npm來加載,能夠閱讀相應的文檔來了解不一樣加載器所提供的功能。web

執行npm

webpack --watch

啓動監聽模式,如此即可以免在每次修改模塊後都從新編譯,開啓監聽模式後,沒有變化的模塊會在編譯後緩存到內存中,而不會每次都被從新編譯json

npm install webpack-dev-server -g

使用webpack-dev-server構建本地服務器,在瀏覽器輸入localhost:8080會以監聽模式自動運行webpack

關於webpack還有不少使人驚奇的地方,看官方文檔能夠知道不少關於webpack的工做原理或者是其相關的周邊生態,道阻且長,也但願本身可以不斷的學習新的技術,將來可以用於項目中,更深的體會其原理跟奧妙。

相關文章
相關標籤/搜索