摘要:從最簡單的到項目中的實踐。指令是平臺下,并且使用了來安裝包的依賴一基礎初始化項目會在項目目錄下創建文件安裝下面來寫最簡單的一個入門。
webpack4前言背景用途不多說,上來就干。從最簡單的demo到項目中的實踐。(指令是window 平臺下,并且使用了cnpm 來安裝包的依賴.)
一.基礎demo
1.初始化項目
npm init -y
會在項目目錄下創建package.json 文件.
2.安裝webpack webpack-cli
cnpm install webpack webpack-cli --save-dev
3.下面來寫最簡單的一個入門demo。創建src dist 兩個文件夾,分別用來放源碼和打包后的代碼
mkdir src mkdir dist
在src 手動創建entry.js
document.getElementById("title").innerHTML="monkeykg"
在項目的根目錄創建webpack.config.js,內容如下
const path=require("path"); module.exports={ mode:"development", entry:[ path.join(__dirname,"./src/entry.js") ], output:{ path:path.join(__dirname,"dist"), filename:"bundle.js" }, // module:{}, // plugins:[], // devServer:{} }
為了簡化webpack 運行的指令輸入,可以在package.json文件的添加配置如下
"scripts": { "test": "echo "Error: no test specified" && exit 1", "build":"npx webpack --config webpack.config.js"http://手動添加 },
可以在命令行中運行了。。
npm run build
webpack最簡單的一個demo完成,在dist目錄下面會生成一個bundle.js文件,同時手動創建一個index.html在dist目錄下,內容如下
Document
瀏覽器運行index.html,就可以看到打包文件的js已經生效,頁面上有 monkeykg 顯示。
附上項目的demo 的目錄結構
二.進階
1.多個入口
webpack.config.js修改如下
const path=require("path"); module.exports={ mode:"development", entry:[ path.join(__dirname,"./src/entry.js"), path.join(__dirname,"./src/entry1.js"),//添加一個入口文件 ], output:{ path:path.join(__dirname,"dist"), filename:"[name].js"http://出口文件 }, // module:{}, // plugins:[], // devServer:{} }
entry1.js文件的內容如下
document.getElementById("title").style.color="red";
刪除dist的bundle.js,然后運行npm run build,打包生成一個main.js文件。index.html修改引入script的路徑"./main.js" ,瀏覽器運行index.html,輸出紅色的 monkeykg
2.添加熱更新
cnpm install --save-dev webpack-dev-server
在webpack.config.js添加如下代碼(附圖)
const path=require("path"); const webpackDevServer=require("webpack-dev-server") module.exports={ mode:"development", entry:[ path.join(__dirname,"./src/entry.js"), path.join(__dirname,"./src/entry1.js"), ], output:{ path:path.join(__dirname,"dist"), filename:"[name].js" }, // module:{}, // plugins:[], devServer:{ contentBase:path.join(__dirname,"dist"), host:"localhost", compress:true, port:8888 } }
package.json 添加如下
"scripts": { "test": "echo "Error: no test specified" && exit 1", "build": "npx webpack --config webpack.config.js", "server":"webpack-dev-server" },
命令行輸入npm run server 然后再瀏覽器打開localhost:8888,就可以看到index.html 頁面,同時修改入口的 js代碼,會實時的刷新瀏覽器,實現了熱更新。
3.模塊化打包css,并且多帶帶輸出css文件
安裝包依賴 style-loader css-loader extract-text-webpack-plugin@next
cnpm install --save-dev style-loader css-loader extract-text-webpack-plugin@next
在src 新建index.css
body{ background:red; color:white; }
并且在extry.js中引入
import css form "./index.css"
webpck.config.js修改如下:
const path=require("path"); const webpackDevServer=require("webpack-dev-server"); const extractTextWebpackPlugin=require("extract-text-webpack-plugin"); module.exports={ mode:"development", entry:[ path.join(__dirname,"./src/entry.js"), path.join(__dirname,"./src/entry1.js"), ], output:{ path:path.join(__dirname,"dist"), filename:"[name].js" }, module:{ rules:[ { test:/.css$/, use:extractTextWebpackPlugin.extract({ fallback:"style-loader", use: ["css-loader",] }) } ] }, plugins:[ new extractTextWebpackPlugin({ filename:"index.css" }) ], devServer:{ contentBase:path.join(__dirname,"dist"), host:"localhost", compress:true, port:8888 } }
刪除main.js,命令行運行 npm run build,完成打包
在dist目錄會多一個index.css文件
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/96849.html
摘要:書接上文,繼續干,配置一些常用的插件使支持壓縮插件默認已經有,所以只需要引入就可以使用在中配置生成將的目錄下面的移入目錄,并且刪除以及的引入標簽,然后安裝包。在中添加后續抽空補上打包以及第三方插件的的配置。。。。。。 書接上文,繼續干,配置一些常用的插件使支持 uglifyjs js壓縮插件 webpack默認已經有uglifyjs,所以只需要引入就可以使用. 在webpack...
摘要:開發負責人創建分支,編寫單元測試腳本,編寫代碼,實現提案中的所有內容,最終發起交叉評審,檢查代碼,提出改進意見,反饋給開發負責人,繼續完善細節。 Swoole開源項目從2012年開始發布第一個版本,到現在已經有近7年的歷史。在這七年的時間里: 提交了8821次代碼變更 發布了287個版本 收到并解決1161次issue反饋 合并了603次pull request 共有100位開發者...
摘要:對模塊進行了打包,監聽文件更改刷新等功能,創建了個服務,分別為靜態資源服務用于代理本地資源,與自刷新瀏覽器請求服務用于接受,請求,返回數據服務用于收發消息。除了項目,還可以換成項目。項目地址如果覺得對你有所幫助,多謝支持 prince-cli 快速指南 這是一個為快速創建SPA所設計的腳手架,旨在為開發人員提供簡單規范的開發方式、服務端環境、與接近native應用的體驗。使用它你能夠獲...
閱讀 663·2023-04-26 02:03
閱讀 1037·2021-11-23 09:51
閱讀 1111·2021-10-14 09:42
閱讀 1738·2021-09-13 10:23
閱讀 927·2021-08-27 13:12
閱讀 839·2019-08-30 11:21
閱讀 1001·2019-08-30 11:14
閱讀 1041·2019-08-30 11:09