原创 webpack配置resolve屬性

resolve屬性配置 let path = require('path'); let HtmlWebpackPlugin = require('html-webpack-plugin'); let {CleanWebpackPl

原创 分析webpack中使用的Tapable——異步鉤子實現及模擬實現

tapable webpack本質上是一種事件流的機制,他的工作流程就是將各個插件串聯起來,而實現這一切的核心就是tapable, tapable有點類似於nodejs的events庫,核心原理也是依賴於發佈訂閱模式: 繼承了很多

原创 手寫webpack——實現loader的功能

實現loader zf-pack.js let fs = require('fs'); let path = require('path'); let babylon = require('babylon'); let trave

原创 webpack中自帶的打包優化

webpack自帶的優化 index.js文件 // import jquery from 'jquery' import calc from './test.js'; // import 在生產環境下,會自動去除沒用的代碼 /

原创 webpack打包多應用

打包多頁應用 webpack.config.js let path = require('path'); let HtmlWebpackPlugin = require('html-webpack-plugin'); module

原创 webpack抽取公共代碼

抽取公共代碼 let path = require('path'); let HtmlWebpackPlugin = require('html-webpack-plugin'); let webpack = require('w

原创 手寫webpack

手寫webpack 我們來手動實現一個簡易的webpack, zf-pack 開發方式 新建一個倉庫,然後執行npm link即可 在需要構建的項目下面,執行npm link zf-pack package.json配置 {

原创 實現file-loader與url-loader

file-loader實現 file-loader.js: let loaderUtils = require('loader-utils'); function loader(source) { let filenam

原创 webpack實現常用loader

實現常用loader 概念:什麼是loader? webpack只能處理javascript的模塊,如果要處理其他類型的文件,需要使用loader進行轉換,loader是webpack中的一個重要概念 ,它是指用來將一段代碼轉換成

原创 實現css-loader、less-loader、style-loader

less-loader less-loader.js let less = require('less'); function loader(source) { let css; less.render(sourc

原创 實現FileListPlugin插件

實現FileListPlugin插件 FileListPlugin.js class FileListPlugin { constructor({filename}) { this.filename = f

原创 webpack定義環境變量

定義環境變量 使用webpack.definePlugin let path = require('path'); let HtmlWebpackPlugin = require('html-webpack-plugin'); l

原创 webpack熱更新

熱更新 只有更新某個模塊的時候,只更新該部分,不刷新頁面,是一種增量的更新 webpack.config.js let path = require('path'); let HtmlWebpackPlugin = require

原创 webpack處理js語法及校驗

處理js語法及校驗: 如何去優化和兼容一些高級語法 yarn add @babel/plugin-transform-runtime yarn add @babel/runtime yarn add @babel/polyfil

原创 webpack打包圖片

打包圖片 1、在js中創建圖片來引入 yarn add file-loader url-loader -D webpack.config.js module.exports = { module: {