webpack成神之路(一)

webpack是干什么的網(wǎng)上一堆,就不贅述了?,F(xiàn)在從零開始學(xué)習(xí)webpack;

  1. 初始化項(xiàng)目
git init // git 初始化
npm init  // 創(chuàng)建package.json.
image.png
  1. 安裝webpack webpack-cli
cnpm i webpack webpack-cli --save-dev
  
image.png
  1. 現(xiàn)在就可以使用webpack了,我們先來創(chuàng)建一個(gè)src目錄,在下面創(chuàng)建一個(gè)index.js;index.js內(nèi)容console一段話
console.log('哈哈哈')
image.png
  1. 命令行運(yùn)行webpack


    image.png
  • 然后就會發(fā)現(xiàn)在生成了一個(gè)dist目錄,下面有webpack打包生成的main.js.
image.png
  1. 我們在根目錄下創(chuàng)建一個(gè)html文件,并引入main.js。打開網(wǎng)頁,打開控制臺,可以看到輸出了"哈哈哈";


    image.png

    image.png
  2. 我們試一下能不能require其他js。在src下創(chuàng)建一個(gè)a.js。里面console.log('我是 a.js'); 在index.js中 require('./a.js');

    image.png

  • 重新命令webpack打包文件,然后打開index.html


    image.png
  • 可以看到控制臺輸出了a.js中的內(nèi)容。證明把多個(gè)js打包了。
  1. 當(dāng)然如果我們不想用默認(rèn)打包方式可以創(chuàng)建webpack.config.js;在里面配置我們的個(gè)性化打包方式。


    image.png
  2. webpack.config.js中的一些簡單的配置;

const path = require('path');

module.exports = {
    mode: 'production', //開發(fā)模式 development  生產(chǎn)模式production
    entry: './src/index.js', // 入口
    output:{
        filename: "index.[hash:8].js",      // 打包后的文件名,帶上8位數(shù)的hash值
        path: path.resolve(__dirname, 'build')   // 打包后的絕對路徑 path自帶模塊相對路徑轉(zhuǎn)換絕對路徑
    }
}
image.png
  • 配置好webpack.config.js后,需要在package.json.中scripts中配置
    啟動命令


    image.png
  • 然后我們在命令行輸入npm run build
    可以看到在根目錄打包了build文件夾,下面有一個(gè)index.18abb081.js的文件,在html中引入這個(gè)新的js。

    image.png

  • 打開網(wǎng)頁,控制臺一樣輸出了 ‘哈哈哈’ ‘我是 a.js’,說明配置沒有問題。

  1. 當(dāng)然我們也可以重命名webpack.config.js。比如我們加webpack.config.test.js
  • 把webpack.config.js中的內(nèi)容復(fù)制過來,輸出文件夾改個(gè)名字試一下


    image.png
  • package.json 中的build內(nèi)容修改為 webpack --config webpack.config.test.js


    image.png
  • 可以看到打包成功,并且生成了預(yù)期的buildtest的文件夾,引入當(dāng)前js到index.html中,控制臺也正常打印了結(jié)果。

  1. 好了把webpack.config.test.js文件刪除,package.json也回去?,F(xiàn)在打包后的文件我是用vscode插件啟動的index.html。當(dāng)然webpack肯定有自己啟動服務(wù)的插件。webpack-dev-server
  • 命令行安裝webpack-dev-server
image.png
  • package.json中配置啟動命令。


    image.png
{
  "name": "webpack",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "build": "webpack",
    "serve": "webpack-dev-server"
  },
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "webpack": "^4.31.0",
    "webpack-cli": "^3.3.2",
    "webpack-dev-server": "^3.3.1"
  }
}
  • 現(xiàn)在我們在命令行運(yùn)行npm run serve,打開頁面localhost:8080;控制臺依然打印成功了。

    image.png

  • 當(dāng)然我們可以配置 webpack.config.js中devServer

const path = require('path');

module.exports = {
    mode: 'production', //開發(fā)模式 development  生產(chǎn)模式production
    entry: './src/index.js', // 入口
    output:{
        filename: "index.[hash:8].js",      // 打包后的文件名,帶上8位數(shù)的hash值
        path: path.resolve(__dirname, 'build')   // 打包后的絕對路徑 path自帶模塊相對路徑轉(zhuǎn)換絕對路徑
    },
    devServer:{
        port: 1234, // 端口號    不能6666-6669 ,安全限制在chrome中不能成功
        progress: true, // 加上進(jìn)度條
        contentBase: './', //靜態(tài)服務(wù)的目錄。默認(rèn)當(dāng)前根目錄,如果index.html在src下,這里就要改為./src
        open: true, //自動打開頁面
        compress: true, //壓縮
    }
}
  • 這時(shí)會自動打開頁面。控制臺也打印成功

下一篇 webpack成神之路(二)http://www.itdecent.cn/p/e037e1b558ca

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

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

  • webpack 介紹 webpack 是什么 為什么引入新的打包工具 webpack 核心思想 webpack 安...
    yxsGert閱讀 6,670評論 2 71
  • 版權(quán)聲明:本文為博主原創(chuàng)文章,未經(jīng)博主允許不得轉(zhuǎn)載。 webpack介紹和使用 一、webpack介紹 1、由來 ...
    it筱竹閱讀 11,462評論 0 21
  • 寫在開頭 先說說為什么要寫這篇文章, 最初的原因是組里的小朋友們看了webpack文檔后, 表情都是這樣的: (摘...
    Lefter閱讀 5,445評論 4 31
  • 更新:Webpack4已經(jīng)發(fā)布,本篇是基于Webpack3的,請注意。更正:1.package.json中使用了應(yīng)...
    HermitCarb閱讀 1,280評論 2 4
  • 目錄第1章 webpack簡介 11.1 webpack是什么? 11.2 官網(wǎng)地址 21.3 為什么使用 web...
    lemonzoey閱讀 1,829評論 0 1

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