webpack入門


簡單的webpack入門

1.新建一個node項目,內容為

  • /app
    • index.html
    • entry.js
  • package.json
  • bundle.js
  • webpack.config.js
    cd app && npm init

在index.html中引入bundle.js,作為打包之后的集成文件

在entry.js中寫一個簡單的語句

    document.write('hello world');

然后使用webpack打包到bundle.js中

    webpack entry.js bundle.js

使用瀏覽器打開index.html即可看到效果

具有模塊引用的文件打包

新建一個module.js,并寫入一些語句

module.exprots = 'It was work form module'

再在entry.js中引入這個模塊

var text = require('./module.js');
document.write(text);

重新打包,即可看到效果

    hello wrold It was work form module

使用css-loader引入css模塊

在webpack的世界里,所有都是模塊,所以css也不例外,我們可以通過css-loader讀取它,然后再使用style-loader把它插入到html頁面中

先安裝css-loader和style-loader這兩個包

    npm install css-loader style-loader

在entry.js中引入style.css

    require('!style!css!./style.css')       //載入style.css
    var text = require('./module.js');
    document.write('hello world');
    document.write(text);

如果每次都寫成!style!css!./style.css則會非常繁瑣,webpack可以根據模塊的擴展名去自動綁定需要的loader

修改entry.js中的寫法

    require('./style.css')       //載入style.css
    var text = require('./module.js');
    document.write('hello world');
    document.write(text);

然后打包必須這樣進行

    webpack entry.js bundle.js --module-bind "css=style!css"

強大的配置

上面的操作都是手動運行,實在是太麻煩了,因此我們需要用到webpack的配置文件,根據配置去打包對應的模塊。

先在根目錄新建webpack配置文件

    vim webpack.config.js

然后寫好對應的配置

    var webpack = require('webpack');
    module.exports = {
        entry:'entry.js',  //配置入口文件
        output:{
            path:__dirname, //配置輸出文件絕對路徑,一般使用__dirname獲取當前模塊路徑
            filename:'bundle.js' //輸出文件名
        },
        //配置nodejs模塊
        module:{
            //配置加載器
            loaders:[
                //使用正則匹配目標文件,使用使用css-load和style-load把css插入到頁面中去
                {test:/\.css$/,loaders:['style-loader','css-loader']}
                //webpack已經不允許使用style,css這種loader的名稱了,要使用style-loader
            ]
        }
    }

最后在項目根目錄使用 webpack 即可根據配置文件來打包項目

npm命令的一些常識

  • 如果需要新建一個項目,必須要使用 npm init 命令,在package.json中配置好項目所需要的依賴
    npm install webpack --save-dev 后面--save-dev的意思是將包信息添加到devDependencies,表示開發時依賴的包,--save是指將包信息添加到dependencies,表示你發布時依賴的包

使用nodejs插件快速生成html文件

有時候我們不想自己手動創建html文件,可以使用nodejs插件創建

npm install html-webpack-plugin --save-dev
有了這個插件之后,可以在webpack配置進行配置了

var path =require('path');
var HTMLwebpackPlugin = require('html-webpack-plugin');
//定義一些文件夾,項目文件就放這里
var ROOT_PATH = path.resolve(__dirname);  //獲取當前模塊絕對路徑
var APP_PATH = path.resolve(ROOT_PATH,'app');  //指定項目源碼目錄
var BUILD_PATH = path.resolve(ROOT_PATH,'build'); //指定構建輸出目錄

module.exports = {
   //項目入口,如果指定到文件夾則會尋找index.js作為入口js,如果指定到某個js,則會以其為入口文件
    entry:APP_PATH;
    output:{
        path:BUILD_PATH,
        filename:'bundle.js'
    }
},
//添加我們的插件,會自動生成一個html文件
plugins:[
    new HTMLwebpackPlugin({
        title:'hello webpack'
    })
]

使用webpack本地服務器

npm install webpack-dev-

然后需要在webpack.config.js里面對這個服務器進行配置

    module.exports = {
        ...
        devServer:{
            historyApiFallback: true,
            hot: true,
            inline: true,
            progress: true,
        }
        ...
    }

然后在package.json里面配置一下運行的命令,npm支持自定義一些命令短語
"script":{
"start":"webpack-dev-server --hot --inline"
//key是要運行的命令的短語,value是需要運行的命令
}
然后在項目根目錄運行 npm start 命令,打開瀏覽器輸入 localhost:8080即可

總結

webpack將所有的資源都視作模塊,使用Common.js的語法進行模塊的引入,掛載

webpack入門總結
webpack入門總結
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 前言 眾所周知目前比較火的工具就是gulp和webpack,但webpack和gulp卻有所不同,本人兩者的底層研...
    cduyzh閱讀 1,389評論 0 13
  • 無意中看到zhangwnag大佬分享的webpack教程感覺受益匪淺,特此分享以備自己日后查看,也希望更多的人看到...
    小小字符閱讀 8,220評論 7 35
  • 寫在前面 第一次接觸webpack,是在一個react項目參與中,剛開始使用的時候,甚至不知道是做什么用的,只看到...
    默默先生Alec閱讀 667評論 0 3
  • GitChat技術雜談 前言 本文較長,為了節省你的閱讀時間,在文前列寫作思路如下: 什么是 webpack,它要...
    蕭玄辭閱讀 12,710評論 7 110
  • 1.為什么要使用webpack 現今的很多網頁其實可以看做是功能豐富的應用,它們擁有著復雜的JavaScript代...
    YINdevelop閱讀 514評論 0 5