webpack基礎
webpack-基礎 貌似這些屬於編譯原理的內容。 當時看了一點編譯原理,當中的自動機,徹底懵。 不過大概瞭解了一點內容。感覺webpack一個打包工具非常類似於一個編譯器,將一個檔案,轉換為另外一個檔案。
一些概念
入口
入口,即尋找入口檔案的及其依賴項的檔案。即編譯前的檔案
配置檔案為webpack.config.js中修改為
module.exports = {
entry: "./app.js"
}
使用這個可以設定入口檔案為./app.js由該檔案,可以尋找相關的依賴
出口
output告訴要生成那些檔案 ``` const path = require("path");
module.exports = { entry: "./app.js", output: { filename: "my-first-webpack.js" } } ``` 匯出該檔案
loader
loader可以讓webpack處理非js檔案。
module: {
rules: [
{test: /\.txt$/, use: 'raw-loader'} // 再遇到txt檔案的時候,需要使用ras-loader進行轉換一下
]
}
遇到txt檔案的時候,需要使用raw-loader進行轉換
類似於express中的中介軟體
raw-loader表示將檔案作為字串進行讀取
外掛
即打包,優化,定義環境中的變數等。
plugins: [
new HtmlWebpackPlugin({template: './src/index.html'})
]
入口檔案
``` const config = { entry: './file.js', // 定義入口檔案 }
module.exports = config;
分離應用程式和第三方庫
const config = {
entry: {
app: './src/app.js',
vendors: './src/vendors.js'
}
}
module.exports = config; ``` 在上方中webpack會根據app和vendors分別建立兩個互相沒有任何依賴的依賴圖,進行打包 在平常中,一個html文件,只使用一個入口檔案。
出口
如何寫出編譯後的檔案。 ``` const config = { entry: { app: './src/app.js', vendors: './src/vendors.js' }, output: { filename: 'bundle.js', // 檔名稱 path: '/home/assets' // 輸出後的絕對路徑 } }
module.exports = config; ```
``` const config = { entry: { app: './src/app.js', vendors: './src/vendors.js' }, output: { filename: '[name].js', // 檔名稱,name為物件名,輸出的檔案為app.js vendors.js path: '/home/assets' // 輸出後的絕對路徑 } }
module.exports = config; ```
出口,即編譯完成後生成的檔案
load
load為程式碼轉換,可以使用這個載入css檔案,使用這個將typeScript轉為JavaScript
安裝
npm install --save-dev ts-loader
```
const config = {
entry: {
app: './app.js'
},
output: {
filename: '[name].js', // 檔名稱,name為物件名,輸出的檔案為app.js vendors.js
path: '/home/assets' // 輸出後的絕對路徑
},
module: {
rules: [
{test: /.ts$/, use: 'ts-loader'}
]
}
}
module.exports = config; ``` 使用這個可以在打包的時候,將ts檔案轉為js檔案。
外掛
建立同名的js檔案 這裡的是apply()函式。 ``` const pluginName = "ConsoleLogOnBuildWebpackPlugin"
class ConsoleLogOnBuildWebpackPlugin {
apply(){
console.log('構建開始');
}
}
使用外掛
const webpack = require('webpack'); // 訪問內建外掛
const config = { entry: { app: './app.js' }, output: { filename: '[name].js', // 檔名稱,name為物件名,輸出的檔案為app.js vendors.js path: '/home/assets' // 輸出後的絕對路徑 }, module: { rules: [ {test: /.ts$/, use: 'ts-loader'} ] }, plugins: [ new webpack.optimize.UgifyJsPlugin(), new ConsoleLogOnBuildWebpackPlugin() ] }
module.exports = config; ```
相關文章
- webpack 基礎Web
- webpack基礎配置Web
- webpack 基礎使用Web
- webpack 基礎入門 - 瞭解webpackWeb
- Webpack 基礎知識Web
- webpack基礎知識Web
- webpack4 基礎?Web
- webpack-基礎配置Web
- webpack4-基礎配置Web
- webpack4基礎配置Web
- webpack基礎配置紀實Web
- 前端工程化 Webpack基礎前端Web
- webpack4之基礎篇Web
- 【webpack系列】webpack4.x入門配置基礎(一)Web
- webpack(3)基礎的打包過程Web
- webpack基礎–css相關處理WebCSS
- Webpack | webpack.config.js配置及基礎module、plugins打包WebJSPlugin
- Webpack4系列教程(一) 基礎入門Web
- webpack基礎配置與css相關loaderWebCSS
- Webpack系列-第一篇基礎雜記Web
- webpack基礎講解及簡單搭建步驟Web
- vue+webpack 從入門到精通(基礎篇)VueWeb
- webpack 3 零基礎入門教程 #4 - webpack 的配置檔案 webpack.config.jsWebJS
- 史上最詳細的webpack 講解3 (webpack.base.conf.js基礎配置)WebJS
- webpack學習(一) -- 基礎概念及安裝執行Web
- 9.Vue之webpack打包基礎---模組化思維VueWeb
- 分享:一篇webpack配置基礎絕好文章Web
- webpack 3 零基礎入門教程 #7 - webpack-dev-server 就是這麼簡單WebdevServer
- [Webpack] 核心概念、基礎配置、常用loader和常用外掛Web
- Webpack原始碼基礎-Tapable從使用Hook到原始碼解析Web原始碼Hook
- 爬蟲逆向基礎,理解 JavaScript 模組化程式設計 webpack爬蟲JavaScript程式設計Web
- 一個從0到1的webpack打包vue基礎教程WebVue
- webpack從0到1超詳細超基礎學習教程Web
- webpack從此不再是我們的痛點 — 核心基礎Web
- 從搭建vue-腳手架到掌握webpack配置(一.基礎配置)VueWeb
- 「基礎搭建」從零開始,基於 Webpack5 搭建一個 Vue-CliWebVue
- webpack及node.js基礎必會--path模組的常見操作WebNode.js
- 從零搭建前端開發環境----React+Ts+Webpack基礎搭建前端開發環境ReactWeb