這篇文章帶給大家的內容是關於webpack4新增了哪些東西?需要注意些什麼?有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。
在開發人員還在體會webpack3.x的餘韻時,webpack4.x已經悄悄地來。
而對使用者來說,最期待的問題無外乎如下:
#新版本與舊版本相比有哪些改變?
webpack3.x到webapck4.x的遷移?
使用webpack4.x我們該注意什麼?
webpack的新功能
webpack 作為建置工具的強大之處在於:
可以在webpack.config.js 中配置許多獨特的功能;
它的配置靈活多變;
- 學習、使用、研究webpack的成本過高(進階曲線太陡);
- 建立一個小應用程式也需要像建立大應用程式那樣配置webpack.config.js(麻雀雖小五臟俱全);
- 建立一個專案目錄(webpack-demo),然後進入改目錄mkdir webpack-demo && cd webpack-demo
- 初始化package.json 檔案 npm init -y
- 載入webpack 和webpack-cli 依賴npm install webpack webpack-cli --save-dev
- #在專案中加入~/src/index.js 檔案(index.js 是預設的入口文件,預設入口目錄為~/src,當然你也可以自訂入口文件,需要修改package.json 中的main 配置項目為指定的檔案)
console.log('hello webpack.')開啟package.json 在scripts 配置項目中新增以下程式碼:
"scripts": { "build": "webpack" }附註:這就是NPM的scripts 指令執行npm run build 指令,之後在專案中你將會看到一個~/dist/main.js 的檔案。在命令視窗你因該注意到如下的警告提示:
WARNING in configuration The 'mode' option has not been set, webpack will fallback to 'production' for this value. Set 'mode' option to 'development' or 'production' to enable defaults for each environment. You can also set it to 'none' to disable any default behavior. Learn more: https://webpack.js.org/concepts/mode/忽略這條提示訊息,我們發現webpack4.x的項目初始化配置和webpack3.x沒什麼大的區別,但是webpack4.x少了必須要的webpack.config.js 設定檔。
打包模式的改變
我們再回頭查看上面這個提示信息,它的意思就是說:'如果沒有設置打包模式這個配置項,那麼默認的打包模式為生產模式(production),而對於開發模式(development),需要配置mode 配置項',說到這裡,我想各位看官應該明白了webpack4.x增加了很多默認配置項,針對不了解webpack的人員或小應用開發的場景,這樣做無異省時省力。 但實際應用中,我們往往還是區分開發模式和生產模式,但這在webpack4.x中也不是什麼難事兒,只要修改package.json 中的scripts 如下:"scripts": { "dev": "webpack --mode development", // 用于开发模式 "build": "webpack --mode production" // 用于生产模式 }'對! webpack4.x就是這麼簡單’。我們不需要像webpack3.x那樣分別定義開發模式和生產模式這樣兩份設定檔。
重載預設的設定項入口/出口
沒有了設定檔 webpack.config.js ,在減少了我們的設定工作量同時,也給初窺門徑的我們帶來了一些疑問。例如:如何自訂入口/出口? 在沒有webpack.config.js 的情況下,我們可以在命令列中新增入口/出口設定項,程式碼如下:"scripts": { "dev": "webpack --mode development ./src/entry.js --output ./dist/bundle.js", // 用于开发模式 "build": "webpack --mode production ./src/entry.js --output ./dist/bundle.min.js" // 用于生产模式 }這只是不使用webpack.config.js 的一種方案。 以上就是webpack4.x帶給我們的整體改變。 但是原來 webpack.config.js 設定檔中的 module 和 plugins 設定項中的功能實作還是需要使用 webpack.config.js。雖然webpack團隊的計劃是 0 配置一些常用的loader,plugin,但實現的僅有 UglifyJSPlugin 內建插件,在生產模式無需引入它就可以實現 *.js 程式碼的壓縮。其它的loader和plugin則只能透過 webpack.config.js 來引入。
webpack的遷移和注意事項
看到webpack4.x的這些變化,很多人不僅會問webpack3.x到webpack4.x的遷移是不是很麻煩,其實不麻煩,webpack4.x向後相容webpack.3x。 前面為了不引入webpack.config.js ,我們使用了npm的scripts ,其時像入口/出口的重載,我們也可以在webpack.config.js 設定檔中完成,設定跟原來的相似,但webpack4.x有以下問題要注意:升级到webpack4.x,你会发现在使用 extract-text-webpack-plugin 分离 *.css 出文件时经常出错,这是 extract-text-webpack-plugin 本身的问题,官方推荐使用 mini-css-extract-plugin 来避免问题的出现,但使用 mini-css-extract-plugin 有一个限制就是webapck须是4.2.0版本以上(较低的版本不支持)。
使用 使用babel-loader 转化ES6->ES5时将不需要 .babelrc 配置文件,你只需要在 package.json 的 scripts 中添加 --module-bind js=babel-loader 即可完成对 babel-loader 的配置。
其他的loader和plugin没有什么大的变化。其实讲到这里基本完了,下面是用webpack4.x构建的一个demo。
webpack4.x的demo
紧接上面的配置:
首先,添加 html-wepback-plugin 和 html-loader 依赖:
npm install html-webpack-plugin html-loader --save-dev
html-webpack-plugin生成html文件(html文件用来加载打包生成 bundle.js 文件),当然你也可以使用webpack支持的各种模板loader,这里使用 html-loader 支持的 *.html 类型模板来生成。
其次,添加 mini-css-extract-plugin
和 css-loader
依赖:
npm install mini-css-extract-plugin css-loader --save-dev
loader和plugin配置与webpack3.x类同,也可参考下面提供代码中的 webpack.config.js 文件。
然后,添加 babel-loader 、@babel/babel-core 和 @babel/babel-preset 依赖:
npm install @babel/core babel-loader @babel/preset-env --save-dev
loader和plugin配置与webpack3.x类同,也可参考下面提供源码中的 webpack.config.js 文件。
修改 package.json 中 scripts 如下:
"scripts": { "dev": "webpack --mode development --module-bind js=babel-loader ./src/entry.js --output ./dist/bundle.js", "build": "webpack --mode production ./src/entry.js --module-bind js=babel-loader --output ./dist/bundle.min.js" },
最后,添加 webpack-dev-server 依赖,实现项目文件修改,浏览器及时刷新
npm install webpack-dev-server
在 package.json 中 scripts 的 dev 替换 webpack 为 webpack-dev-server 即可,代码如下:
"scripts": { "dev": "webpack-dev-server --mode development --module-bind js=babel-loader ./src/entry.js --output ./dist/bundle.js", "build": "webpack --mode production ./src/entry.js --module-bind js=babel-loader --output ./dist/bundle.min.js" },
这样一个简单的demo就完成了。
其他的loader和plugin配置和webpack3.x类同。
以上是webpack4新增了哪些東西?需要注意些什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

HTML是一種用於構建網頁的語言,通過標籤和屬性定義網頁結構和內容。 1)HTML通過標籤組織文檔結構,如、。 2)瀏覽器解析HTML構建DOM並渲染網頁。 3)HTML5的新特性如、、增強了多媒體功能。 4)常見錯誤包括標籤未閉合和屬性值未加引號。 5)優化建議包括使用語義化標籤和減少文件大小。

WebDevelovermentReliesonHtml,CSS和JavaScript:1)HTMLStructuresContent,2)CSSStyleSIT和3)JavaScriptAddSstractivity,形成thebasisofmodernWebemodernWebExexperiences。

HTML的作用是通過標籤和屬性定義網頁的結構和內容。 1.HTML通過到、等標籤組織內容,使其易於閱讀和理解。 2.使用語義化標籤如、等增強可訪問性和SEO。 3.優化HTML代碼可以提高網頁加載速度和用戶體驗。

htmlisaspecifictypefodyfocusedonstructuringwebcontent,而“代碼” badlyLyCludEslanguagesLikeLikejavascriptandPytyPythonForFunctionality.1)htmldefineswebpagertuctureduseTags.2)“代碼”代碼“ code” code code code codeSpassSesseseseseseseseAwiderRangeLangeLangeforLageforLogageforLogicIctInterract

HTML、CSS和JavaScript是Web開發的三大支柱。 1.HTML定義網頁結構,使用標籤如、等。 2.CSS控製網頁樣式,使用選擇器和屬性如color、font-size等。 3.JavaScript實現動態效果和交互,通過事件監聽和DOM操作。

HTML定義網頁結構,CSS負責樣式和佈局,JavaScript賦予動態交互。三者在網頁開發中各司其職,共同構建豐富多彩的網站。

HTML適合初學者學習,因為它簡單易學且能快速看到成果。 1)HTML的學習曲線平緩,易於上手。 2)只需掌握基本標籤即可開始創建網頁。 3)靈活性高,可與CSS和JavaScript結合使用。 4)豐富的學習資源和現代工具支持學習過程。

AnexampleOfAstartingTaginHtmlis,beginSaparagraph.startingTagSareEssentialInhtmlastheyInitiateEllements,defiteTheeTheErtypes,andarecrucialforsstructuringwebpages wepages webpages andConstructingthedom。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

禪工作室 13.0.1
強大的PHP整合開發環境

SublimeText3 Linux新版
SublimeText3 Linux最新版

DVWA
Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

記事本++7.3.1
好用且免費的程式碼編輯器

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。