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

實現plugins zf-pack: let fs = require('fs'); let path = require('path'); let babylon = require('babylon'); let traver

原创 實現webpack的banner-loader

banner-loader實現 banner-loader.js let loaderUtils = require('loader-utils'); let validateOptions = require('schema-u

原创 實現webpack的babel-loader

實現babel-loader babel-loader: let babel = require('@babel/core'); let loaderUtils = require('loader-utils'); funct

原创 webpack打包後自動發佈插件UploadPlugin(以上傳到七牛網爲例)

打包後自動發佈 UploadPlugin.js class UploadPlugin { constructor(options) { let {bucket = '', domain = '', acce

原创 切換jdk出現問題解決

解決方案 不要去改註冊表。 首先我們將JAVA_HOME配置成功後,在path裏面進行配置,將相關配置放到最前面 注意:如果有類似system32這種配置,一定要放到這類配置的前面,或者把該文件夾下的java.exe,javaw.

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

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

原创 實現內聯插件——InlineSourcePlugin

實現webpack插件 要安裝 html-webpack-plugin@next InlineSourcePlugin.js // 把外鏈的標籤, 變成內聯的標籤 let HtmlWebpackPlugin = require('

原创 webpack區分不同環境下的打包方式

區分不同環境 新建兩個配置文件, webpack.prod.js webpack.dev.js 使用webpack-merge來進行合併 yarn add webpack-merge -D // webpack.prod.

原创 webpack處理跨域問題

webpack跨域問題 webpack自己帶了express框架 1、配置代理proxy let path = require('path'); let HtmlWebpackPlugin = require('html-webp

原创 webpack進行實時打包-watch

watch的使用 改過代碼立即打包一份實體文件出來: watch: true, watchOptions: {} let path = require('path'); let HtmlWebpackPlugin = requir

原创 webpack忽略依賴加載

忽略掉某些依賴的加載 使用webpack內置的ignorePlugin插件 let path = require('path'); let HtmlWebpackPlugin = require('html-webpack-plu

原创 webpack忽略解析(noParse)

不需要webpack去解析其他模塊 比如不需要去解析jquery,因爲一般情況jquery不會再去引入其他模塊 使用noParse, 表示不去解析依賴關係 let path = require('path'); let HtmlW

原创 webpack常見小插件使用

小插件使用: 1、cleanWebpackPlugin 清空原目錄文件 (用法有變化) 2、copyWebpackPlugin 拷貝插件 3、bannerPlugin 內置的 版權聲明插件 webpack.conf

原创 webpack配置source-map

配置source-map: 查看原映射文件 webpack.config.js let path = require('path'); let HtmlWebpackPlugin = require('html-webpack-p

原创 webpack打包動態鏈接庫DDLPlugin

動態鏈接庫 不重複打包某些不會變動的文件,加快我們的打包速度 使用webpack的DllPlugin和DllReferencePlugin插件 webpack.ddl.config.js let path = require('p