名稱 | 連結 | 用途 |
---|---|---|
typescript | link | |
webpack | link | |
webpack-cli | link | |
@webpack-cli/generators | link | webpack 環境設定範本 |
ts-loader | link |
webpack v5 已經不需要額外安裝和設定 terser-webpack-plugin (用來壓縮發佈後的 js 內容)
建立 webpack 相關設定檔
問答簡易選項
? Which of the following JS solutions do you want to use? Typescript
? Do you want to use webpack-dev-server? No
? Do you want to simplify the creation of HTML files for your bundle? No
? Which of the following CSS solutions do you want to use? none
? Do you like to install prettier to format generated configuration? Yes
? Overwrite package.json? overwrite
? Overwrite tsconfig.json? 檔案已存在才出現
會產生 tsconfig.json, webpack.config.js, 複寫 package.json
修改 webpack-cli 產生的 tsconfig.json
此欄位可移除, 或是修改成入口檔案
官方文件指出在沒設定 files 和 include, 預設值是 ["**/*"] 會編譯專案目錄底下所有相關檔案 link
結論: tsconfig.json 即使不設定 include 資料夾, 也不影響 webpack 發佈
修改 webpack.config.js
修改 package.json
名稱 | 連結 | 用途 |
---|---|---|
copy-webpack-plugin | link | 複製特定檔案到發佈資料夾 |
clean-webpack-plugin | link | 用來清空發佈資料夾 |
copy-webpack-plugin + clean-webpack-plugin
webpack.config.js 簡易設定
更多用法請參考文件 link
錯誤排解
HookWebpackError: Only file and data URLs are supported by the default ESM loader
copy-webpack-plugin 版本不相容, 嘗試升級或降版本
需要安裝的 package
名稱 | 連結 | 用途 |
---|---|---|
sass-loader | link | |
node-sass | link | |
css-loader | link | |
mini-css-extract-plugin | link | 產生css |
發佈的時候才會將 scss 編譯成 css
webpack entry 預設名稱是 main
需要修改 webpack.config.js 的 entry 欄位
改成
Node.js