這次帶給大家webpack.config.js參數使用案例,webpack.config.js參數使用的注意事項有哪些,以下就是實戰案例,一起來看一下。
webpack.config.js檔案通常放在專案的根目錄中,它本身也是一個標準的Commonjs規格的模組。
var webpack = require('webpack'); module.exports = { entry: [ 'webpack/hot/only-dev-server', './js/app.js' ], output: { path: './build', filename: 'bundle.js' }, module: { loaders: [ { test: /\.js?$/, loaders: ['react-hot', 'babel'], exclude: /node_modules/ }, { test: /\.js$/, exclude: /node_modules/, loader: 'babel-loader'}, { test: /\.css$/, loader: "style!css" }, {test: /\.less/,loader: 'style-loader!css-loader!less-loader'} ] }, resolve:{ extensions:['','.js','.json'] }, plugins: [ new webpack.NoErrorsPlugin() ] };
1.entry
entry可以是個字串或陣列或是物件。
當entry是個字串的時候,用來定義入口文件:
entry: './js/main.js'
當entry是個陣列的時候,裡面同樣包含入口js文件,另外一個參數可以是用來設定webpack提供的一個靜態資源伺服器,webpack-dev-server。 webpack-dev-server會監控專案中每個檔案的變化,即時的進行構建,並且自動刷新頁面:
entry: [ 'webpack/hot/only-dev-server', './js/app.js'
當entry是個物件的時候,我們可以將不同的檔案建構成不同的文件,按需使用,例如在我的hello頁面中只要\引入hello.js即可:
entry: { hello: './js/hello.js', form: './js/form.js' }
2.output
##output參數是個對象,用來定義建置後的檔案的輸出。其中包含path和filename:output: { path: './build', filename: 'bundle.js' }當我們在entry中定義建立多個檔案時,filename可以對應的更改為[name].js用於定義不同檔案建構後的名字。
3.module
關於模組的載入相關,我們就定義在module.loaders中。這裡透過正規表示式去匹配不同後綴的檔名,然後給它們定義不同的載入器。例如給less檔案定義串連的三個載入器(!用來定義級聯關係):
module: { loaders: [ { test: /\.js?$/, loaders: ['react-hot', 'babel'], exclude: /node_modules/ }, { test: /\.js$/, exclude: /node_modules/, loader: 'babel-loader'}, { test: /\.css$/, loader: "style!css" }, { test: /\.less/, loader: 'style-loader!css-loader!less-loader'} ] }此外,還可以加入用來定義png、jpg這樣的圖片資源在小於10k時自動處理為base64圖片的載入器:
{ test: /\.(png|jpg)$/,loader: 'url-loader?limit=10000'}給css和less還有圖片添加了loader之後,我們不僅可以像在node中那樣require js檔案了,我們還可以require css、less甚至圖片檔:
require('./bootstrap.css'); require('./myapp.less'); var img = document.createElement('img'); img.src = require('./glyph.png');但要知道的是,這樣require來的檔案會內聯到js bundle中。如果我們需要把保留require的寫法又想把css檔案單獨拿出來,可以使用下面提到的[extract-text-webpack-plugin]外掛程式。 在上面範例程式碼中配置的第一個loaders我們可以看到一個叫做react-hot的載入器。我的專案是用來學習react寫相關程式碼的,所以配置了一個react-hot載入器,透過它,可以實現對react組件的熱替換。我們已經在entry參數中設定了webpack/hot/only-dev-server,所以我們只要在啟動webpack開發伺服器時開啟–hot參數,就可以使用react-hot-loader了。在package.json檔案中這樣定義:
"scripts": { "start": "webpack-dev-server --hot --progress --colors", "build": "webpack --progress --colors" }
4.resolve
webpack在建置套件的時候會按目錄的進行檔案的查找,resolve屬性中的extensions數組中用於配置程式可以自行補全哪些檔案後綴:resolve:{ extensions:['','.js','.json'] }然後我們想要載入一個js檔案時,只要require('common')就可以載入common. js檔了。
6.externals
當我們想在專案中require一些其他的類別庫或API,而又不想讓這些類別庫的原始碼被建置到運行時檔案中,這在實際開發中很有必要。此時我們就可以透過設定externals參數來解決這個問題:externals: { "jquery": "jQuery" }這樣我們就可以放心的在專案中使用這些API了:var jQuery = require(“jquery”);
#7.context
當我們在require一個模組的時候,如果在require中包含變量,像這樣:require("./mods/" + name + ".js");那麼在編譯的時候我們是不能知道具體的模組的。但這時候,webpack也會為我們做些分析工作:
1.分析目錄:'./mods';
2.提取正規表示式:'/^.*.js$/';#
于是这个时候为了更好地配合wenpack进行编译,我们可以给它指明路径,像在cake-webpack-config中所做的那样(我们在这里先忽略abcoption的作用):
var currentBase = process.cwd(); var context = abcOptions.options.context ? abcOptions.options.context : path.isAbsolute(entryDir) ? entryDir : path.join(currentBase, entryDir);
相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!
推荐阅读:
以上是webpack.config.js參數使用案例的詳細內容。更多資訊請關注PHP中文網其他相關文章!

JavaScript在現實世界中的應用包括前端和後端開發。 1)通過構建TODO列表應用展示前端應用,涉及DOM操作和事件處理。 2)通過Node.js和Express構建RESTfulAPI展示後端應用。

JavaScript在Web開發中的主要用途包括客戶端交互、表單驗證和異步通信。 1)通過DOM操作實現動態內容更新和用戶交互;2)在用戶提交數據前進行客戶端驗證,提高用戶體驗;3)通過AJAX技術實現與服務器的無刷新通信。

理解JavaScript引擎內部工作原理對開發者重要,因為它能幫助編寫更高效的代碼並理解性能瓶頸和優化策略。 1)引擎的工作流程包括解析、編譯和執行三個階段;2)執行過程中,引擎會進行動態優化,如內聯緩存和隱藏類;3)最佳實踐包括避免全局變量、優化循環、使用const和let,以及避免過度使用閉包。

Python更適合初學者,學習曲線平緩,語法簡潔;JavaScript適合前端開發,學習曲線較陡,語法靈活。 1.Python語法直觀,適用於數據科學和後端開發。 2.JavaScript靈活,廣泛用於前端和服務器端編程。

Python和JavaScript在社區、庫和資源方面的對比各有優劣。 1)Python社區友好,適合初學者,但前端開發資源不如JavaScript豐富。 2)Python在數據科學和機器學習庫方面強大,JavaScript則在前端開發庫和框架上更勝一籌。 3)兩者的學習資源都豐富,但Python適合從官方文檔開始,JavaScript則以MDNWebDocs為佳。選擇應基於項目需求和個人興趣。

從C/C 轉向JavaScript需要適應動態類型、垃圾回收和異步編程等特點。 1)C/C 是靜態類型語言,需手動管理內存,而JavaScript是動態類型,垃圾回收自動處理。 2)C/C 需編譯成機器碼,JavaScript則為解釋型語言。 3)JavaScript引入閉包、原型鍊和Promise等概念,增強了靈活性和異步編程能力。

不同JavaScript引擎在解析和執行JavaScript代碼時,效果會有所不同,因為每個引擎的實現原理和優化策略各有差異。 1.詞法分析:將源碼轉換為詞法單元。 2.語法分析:生成抽象語法樹。 3.優化和編譯:通過JIT編譯器生成機器碼。 4.執行:運行機器碼。 V8引擎通過即時編譯和隱藏類優化,SpiderMonkey使用類型推斷系統,導致在相同代碼上的性能表現不同。

JavaScript在現實世界中的應用包括服務器端編程、移動應用開發和物聯網控制:1.通過Node.js實現服務器端編程,適用於高並發請求處理。 2.通過ReactNative進行移動應用開發,支持跨平台部署。 3.通過Johnny-Five庫用於物聯網設備控制,適用於硬件交互。


熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

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

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具

Atom編輯器mac版下載
最受歡迎的的開源編輯器

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境