摘要:隨著前端的發(fā)展,越來(lái)越復(fù)雜的業(yè)務(wù),各種各樣的插件模塊依賴關(guān)系,項(xiàng)目復(fù)雜度的提升,開(kāi)發(fā)成本越來(lái)越高。就是解決了這一系列的問(wèn)題。
基于webpack4 項(xiàng)目說(shuō)明地址
webpack-scaffold
關(guān)于前端工程化前端野蠻生長(zhǎng)的時(shí)代已經(jīng)過(guò)去了。隨著前端的發(fā)展,越來(lái)越復(fù)雜的業(yè)務(wù),各種各樣的插件模塊依賴關(guān)系,項(xiàng)目復(fù)雜度的提升,開(kāi)發(fā)成本越來(lái)越高。webpack就是解決了這一系列的問(wèn)題。你可以利用webpack管理各種資源,也可以提前享受es6語(yǔ)法的便利,也可以規(guī)范成員之間的開(kāi)發(fā)規(guī)范,等等。
關(guān)于wepback配置說(shuō)明,很多同學(xué)都已經(jīng)分享過(guò)很多了,這次分享一下可以直接使用一份webpack項(xiàng)目
模塊化管理資源文件,解析編譯ES6語(yǔ)法
使用jslint,強(qiáng)制校驗(yàn)js語(yǔ)法,規(guī)范js書寫規(guī)則,并自動(dòng)修復(fù)部分語(yǔ)法格式問(wèn)題
使用styleLint,強(qiáng)制校驗(yàn)css,less語(yǔ)法,規(guī)范書寫css,less規(guī)則
編譯less文件,自動(dòng)添加瀏覽器前綴
壓縮js,css文件
使用PurifyCSS、OptimizeCssAssets,去除多余css(未被使用),減少css大小,優(yōu)化css結(jié)構(gòu),減少50%-80%的文件大小
支持iconfont字體文件
自動(dòng)引入html5shiv、respond,兼容h5標(biāo)簽以及響應(yīng)式
持續(xù)更新中目前暫時(shí)不支持vue,react
下載依賴yarn add jay-webpack-scaffold配置文件
cp ./node_modules/jay-webpack-scaffold/webpack/config.dist.js ./webpack-config.js
根據(jù)需求調(diào)整相應(yīng)目錄
配置文件參數(shù)entry: 需要編譯輸出的js 根路徑 output: 輸出的路徑 mainJs: 全局使用的js文件路徑 lessPath: 需要編譯輸出的less 根路徑,該目錄下,都會(huì)被編譯輸出 publicPath: 開(kāi)發(fā)環(huán)境下,使用路徑 author: 作者名稱 removePattern: 不需要被輸出的文件路徑 正則表達(dá)式,例如 /^/css/.*.js?$/,表示css目錄下的所有js文件都不輸出(當(dāng)less作為入口文件時(shí),會(huì)輸出js文件) purifyCssPaths: 被使用到css的所有文件地址,如html頁(yè)面和js,它會(huì)過(guò)濾除了這些被使用的css樣式 copyLibs: 需要拷貝的類庫(kù),可以拷貝目錄,也可以拷貝多帶帶文件 alias: 引用別名,加快編譯速度 libs: js類庫(kù)目錄,每個(gè)文件都會(huì)多帶帶輸出,可以對(duì)已有的類庫(kù)模塊封裝輸出代碼格式化配置 配置js代碼風(fēng)格
./node_modules/.bin/eslint --init
修復(fù)js代碼格式
./node_modules/.bin/eslint --fix filepath
規(guī)則列表:https://eslint.org/docs/rules/
配置樣式代碼風(fēng)格項(xiàng)目根目錄 .stylelintrc
{ "extends": "stylelint-config-standard" }
忽略文件配置 .stylelintignore
規(guī)則列表:https://stylelint.io/user-gui...
規(guī)范:
默認(rèn)加載全局的css和js文件,每個(gè)頁(yè)面多帶帶具有一個(gè)css文件和js文件
配置參數(shù)lessPath,該目錄下的每個(gè)less文件都會(huì)默認(rèn)編譯輸出成css文件,被每個(gè)頁(yè)面使用
配置參數(shù)entry,目錄下的index.js命名的文件將會(huì)作為編譯輸出
配置參數(shù)mainJs, 全局加載的js
命令(scripts)"scripts": { "build": "NODE_ENV=production settingPath="/webpack-config.js" webpack --config "/node_modules/jay-webpack-scaffold/webpack/webpack.js"", "dev": "NODE_ENV=development settingPath="webpack-config.js" webpack-dev-server --config "/node_modules/jay-webpack-scaffold/webpack/webpack.js"", }
你也可以這樣使用
webpack.config.js
const webpackConfig = require("jay-webpack-scaffold"); module.exports = webpackConfig; // 可以自主配置loadeer,plugin,及其他參數(shù)
package.json
"scripts": { "build": "NODE_ENV=production settingPath="/webpack-config.js" webpack --config "webpack.config.js"", "dev": "NODE_ENV=development settingPath="webpack-config.js" webpack-dev-server --config "webpack.config.js"", }
本地開(kāi)發(fā)環(huán)境執(zhí)行以下命令:
npm run dev
它將會(huì)文件生成好,放入內(nèi)存中。自動(dòng)監(jiān)聽(tīng)文件變化
生產(chǎn)環(huán)境執(zhí)行以下命令:
npm run build
它將會(huì)生產(chǎn)靜態(tài)資源文件到你定義的目錄下
項(xiàng)目中使用 ngixn配置location ~ ^/dist { if (-f $root_dir/dev.lock){ proxy_pass http://127.0.0.1:8082; } }
任何/dist/* 的請(qǐng)求,都會(huì)代理到http://127.0.0.1:8082,根據(jù)不同需求相應(yīng)配置
異常情況 npm run dev 執(zhí)行報(bào)錯(cuò)有可能依賴沒(méi)有下載完成,執(zhí)行yarn
有可能端口被占用 執(zhí)行以下命令
lsof -i:8082 (查看占用端口進(jìn)程) kill -9 PID (pid 為進(jìn)程id號(hào))參與開(kāi)發(fā)
下載項(xiàng)目: git clone https://github.com/Jay-tian/w...
啟動(dòng)服務(wù):進(jìn)入項(xiàng)目根目錄,執(zhí)行 npm run dev
將會(huì)打開(kāi) http://127.0.0.1:8082/,資源文件在src下,修改代碼將會(huì)時(shí)時(shí)生效
http://127.0.0.1:8082/webpack-dev-server, 該路徑提供了編譯輸出的資源路徑(資源不是實(shí)體文件)
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/95255.html
摘要:去做想做的事,去愛(ài)值得的人去成為自己喜歡的模樣,去讓自己發(fā)光渾身充滿力量,充實(shí)的日子最美好各位早安,這里是平頭哥聯(lián)盟,我是首席填坑官蘇南,用心分享一起成長(zhǎng)做有溫度的攻城獅。 showImg(https://segmentfault.com/img/bVbjIcs?w=1008&h=298); 前言 繼上一次webpack的基礎(chǔ)配置分享之后,本次將分享一些工作中項(xiàng)目常用的配置插件、也...
摘要:?jiǎn)卧獪y(cè)試一個(gè)合格的庫(kù)應(yīng)該包含完整的單元測(cè)試。是的支持版,和是一樣的,它能夠直接運(yùn)行為后綴的單元測(cè)試文件。在目錄下加入然后執(zhí)行即可看到單元測(cè)試結(jié)果。 這篇文章主要是講述如何使用 TypeScript 編寫一個(gè)完善,包含測(cè)試、文檔、持續(xù)集成的庫(kù),涵蓋了編寫整個(gè)庫(kù)所需要的技術(shù)和工具,主要涵蓋: 項(xiàng)目目錄骨架 TypeScript 配置 使用 jest 單元測(cè)試 使用 vuepress 編寫...
摘要:今天就嘗試著一起來(lái)聊聊吧,旨在幫大家加深理解新手更容易上路,都能從到搭建配置自定屬于自己的腳手架,或?qū)σ逊庋b好的腳手架有進(jìn)一步的鞏固,接下來(lái)蘇南會(huì)詳細(xì)講解中的每一個(gè)配置字段的作用部分為新增。 showImg(https://segmentfault.com/img/bVbjmMV?w=1008&h=298); 前言 經(jīng)常會(huì)有群友問(wèn)起webpack、react、redux、甚至cre...
摘要:項(xiàng)目地址一知識(shí)獲取當(dāng)前文件所在路徑,等同于把一個(gè)路徑或路徑片段的序列解析為一個(gè)絕對(duì)路徑給定的路徑的序列是從右往左被處理的,后面每個(gè)被依次解析,直到構(gòu)造完成一個(gè)絕對(duì)路徑如果處理完全部給定的片段后還未生成一個(gè)絕對(duì)路徑,則當(dāng)前工作目錄會(huì)被用上生成 項(xiàng)目git地址 一、node知識(shí) __dirname: 獲取當(dāng)前文件所在路徑,等同于path.dirname(__filename) consol...
閱讀 2453·2021-09-08 09:45
閱讀 3391·2021-09-08 09:45
閱讀 3131·2019-08-30 15:54
閱讀 3380·2019-08-26 13:54
閱讀 1446·2019-08-26 13:26
閱讀 1412·2019-08-26 13:23
閱讀 942·2019-08-23 17:57
閱讀 2209·2019-08-23 17:14