webpack總結

webpack

images

  • 總結
    • 前端模塊化編程打包工具
    • 能夠把模塊打包成一個文件,提升訪問速度,開發速度,優化用戶體驗
    • module.exports 導出
    • require() 導入
  • 安裝
    • windows: npm install webpack -g
    • mac: sudo npm install webpack -g
  • 使用
    • 命令 webpack test01.js bundle.js
    • 將test01.js文件內容打包到 bundle.js
  • 使用配置文件打包
module.exports = {
    devtool:"eval-source-map",//開啓調試
    entry: "./index.js",//打包index.js文件
    output: {
        path: __dirname,//輸出文件路徑
        filename: "bundle.js"//輸出文件名字
    },
    module: {
        loaders: [//使用webpack loaders模塊 
        	//正則表達式以css結尾 //打包css的模塊 
            { test: /\.css$/, loader: "style-loader!css-loader" }
        ]
    }
};

複製代碼

webpack 核心模塊 loader

Loaders
鼎鼎大名的Loaders登場了!
Loaders是webpack提供的最激動人心的功能之一了。經過使用不一樣的loader,webpack有能力調用外部的腳本或工具,
實現對不一樣格式的文件的處理,好比說分析轉換scss爲css,或者把下一代的JS文件(ES6,ES7)
轉換爲現代瀏覽器兼容的JS文件,對React的開發而言,合適的Loaders能夠把React的中用到的JSX文件轉換爲JS文件。
複製代碼

css-loader style-loader 打包css模塊

安裝:npm install css-loader style-loadercss

引用:html

require("!style-loader!css-loader!./style.css");前端

打包:webpack test.js bundle.jswebpack

web

require("./style.css");正則表達式

打包:webpack test.js bundle.js --module-bind 'css=style-loader!css-loader'npm

插件

例子:安裝內置的 BannerPlugin編程

插件,用於在文件頭部輸出一些註釋信息。windows

安裝:npm install webpack --save-dev瀏覽器

var webpack=require('webpack');
 
module.exports = {
    entry: "./test.js",
    output: {
        path: __dirname,
        filename: "bundle.js"
    },
    module: {
        loaders: [
            { test: /\.css$/, loader: "style-loader!css-loader" }
        ]
    },
    plugins:[
    new webpack.BannerPlugin('內置的 BannerPlugin 插件,用於在文件頭部輸出一些註釋信息。')
    ]
};
複製代碼

開發環境

監聽代碼更新

安裝 npm install webpack-dev-server -g

啓動服務器 webpack-dev-server --progress --colors

訪問網站 http://localhost:8080

devserver的配置選項 功能描述
contentBase 本地服務器所加載的頁面所在的目錄
port 設置默認監聽端口,若是省略,默認爲」8080「
inline 設置爲true,當源文件改變時會自動刷新頁面
module.exports = {
  devtool: 'eval-source-map',

  entry:  __dirname + "/app/main.js",
  output: {
    path: __dirname + "/public",
    filename: "bundle.js"
  },

  devServer: {
    contentBase: "./public",//本地服務器所加載的頁面所在的目錄
    historyApiFallback: true,//不跳轉
    inline: true//實時刷新
  } 
}
複製代碼

教程

簡書webpack教程

菜鳥webpack教程

webpack中文文檔

相關文章
相關標籤/搜索