WebPack使用(一)

標簽(空格分隔):工具


webpack特點

  1. 豐富的插件
  2. 大量的加載器
  3. 代碼分割,提供按需加載的能力
  4. 發(fā)布工具

webpack的優(yōu)勢

  • 以commonJS形式書寫腳本,對AMD/CMD的支持也很全面
  • 能被模塊化的不僅僅是JS
  • 打包,壓縮,混淆,圖片轉(zhuǎn)base64
  • 擴展性強,插件完善,支持熱插拔.

webpack的安裝

1.全局安裝命令

$ npm install webpack -g

2.使用webpack

$ npm init  # 會自動生成一個package.json文件
$ npm install webpack --save-dev #將webpack增加到package.json文件中

3.安裝開發(fā)的工具

$ npm install webpack-dev-server --save-dev

webpack的配置

webpack的配置文件為webpack.config.js

例子:
var webpack = require('webpack');
var commonsPlugin = new webpack.optimize.CommonsChunkPlugin('common.js');
module.exports = {
    //插件項
    plugins: [commonsPlugin],
    //頁面入口文件配置
    entry: {
        index : './src/js/page/index.js'
    },
    //入口文件輸出配置
    output: {
        path: 'dist/js/page',
        filename: '[name].js'
    },
    module: {
        //加載器配置
        loaders: [
            { test: /\.css$/, loader: 'style-loader!css-loader' },
            { test: /\.js$/, loader: 'jsx-loader?harmony' },
            { test: /\.scss$/, loader: 'style!css!sass?sourceMap'},
            { test: /\.(png|jpg)$/, loader: 'url-loader?limit=8192'}
        ]
    },
    //其它解決方案配置
    resolve: {
        root: 'E:/github/flux-example/src', //絕對路徑
        extensions: ['', '.js', '.json', '.scss'],
        alias: {
            AppStore : 'js/stores/AppStores.js',
            ActionType : 'js/actions/ActionType.js',
            AppAction : 'js/actions/AppAction.js'
        }
    }
};
  1. plugins 是插件項,這里我們使用了一個 CommonsChunkPlugin的插件,它用于提取多個入口文件的公共腳本部分,然后生成一個 common.js 來方便多頁面之間進行復用。
  2. entry 是頁面入口文件配置,output 是對應輸出項配置 (即入口文件最終要生成什么名字的文件、存放到哪里)
  3. module.loaders 是最關鍵的一塊配置。它告知 webpack 每一種文件都需要使用什么加載器來處理。 所有加載器需要使用npm來加載
  4. 最后是 resolve 配置,配置查找模塊的路徑和擴展名和別名(方便書寫)

一個簡單的示例

1.配置文件

var webpack = require('webpack');
module.exports = {
    entry: "./index.js",
    output: {
        path: __dirname,
        filename: "bundle.js"http://index與bundle文件平級與index.html平級
    },
    module: {
        loaders: [
            { test: /\.css$/, loader: "style!css" }
        ]
    }
};

2.html文件

<html>

<head>
    <meta charset="utf-8">
</head>

<body>
    <script type="text/javascript" src="bundle.js" charset="utf-8"></script>
</body>

</html>

3.安裝加載器css-loader

$ npm install css-loader style-loader --save-dev

4.入口文件編寫

//在index.js中寫入
document.write("看看如何讓它工作!");
兩種運行方式
  1. 直接運行webpack命令,然后打開index.html
$ webpack
  1. 安裝服務器插件
$ npm install webpack-dev-server -g
$ webpack-dev-server --progress --colors

打開localhost:8080即可運行

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • 無意中看到zhangwnag大佬分享的webpack教程感覺受益匪淺,特此分享以備自己日后查看,也希望更多的人看到...
    小小字符閱讀 8,374評論 7 35
  • 版權(quán)聲明:本文為博主原創(chuàng)文章,未經(jīng)博主允許不得轉(zhuǎn)載。 webpack介紹和使用 一、webpack介紹 1、由來 ...
    it筱竹閱讀 11,465評論 0 21
  • 最近在學習 Webpack,網(wǎng)上大多數(shù)入門教程都是基于 Webpack 1.x 版本的,我學習 Webpack 的...
    My_Oh_My閱讀 8,335評論 40 247
  • GitChat技術雜談 前言 本文較長,為了節(jié)省你的閱讀時間,在文前列寫作思路如下: 什么是 webpack,它要...
    蕭玄辭閱讀 12,897評論 7 110
  • 懷念過去的時光,只是喜歡那份曾經(jīng)的記憶 ——評作家張瑩的散文故事集《半舊時光》 幽藍 當我們經(jīng)歷人生痛苦的時候,希...
    藍蓮花0閱讀 568評論 0 0

友情鏈接更多精彩內(nèi)容