功能說明
在現代前端網頁開發時需要一個打包工具將一堆JavaScript套件打包起來,打包的過程中又有轉譯程式、壓縮程式、壓縮圖片等步驟,Parcel是個取代傳統Webpack的好東西,因為它可以將許多步驟簡化,號稱零步驟打包工具。但是Parel可以不用配置設定打包的原理,是因為Parcel會從一個起始入口(通常是index.html)作為開端,分析從入口開始一切會被引用的檔案。也就是將index.html之類的入口當作一個root節點,走訪整個樹狀結構。有一些沒透過import指令引用的檔案會被Parcel忽略,這時候需要一些Parcel的外掛來幫忙。
在使用前需要先確認自己使用的Parcel版本,近幾年使用的Parcel如果沒有使用版本,那就是第二代的,請直接看V2即可。
Parcel V1
安裝 parcel-plugin-static-files-copy
# 使用YARN安裝
yarn add parcel-plugin-static-files-copy --dev
# 使用NPM安裝
npm install -D parcel-plugin-static-files-copy
使用方式
使用parcel run build
之類的打包指令,parcel就會自動把專案根目錄的static
資料夾裡面的檔案直接複製到打包後的資料夾(預設是dist資料夾)。
預設只會複製static資料夾,如果需要複製其他地方的資料,可以打開package.json
檔案增加以下資料。
{
// package.json 的其他設定
"staticFiles": {
"staticPath": [
"資料夾1",
"資料夾2/子資料夾",
"資料夾3/檔案名稱"
]
}
}
輸入資料夾名稱、子資料夾、檔案名稱皆可。更多資訊可以參考作者的GitHub說明。
https://github.com/elwin013/parcel-plugin-static-files-copy
Parcel V2
安裝 parcel-reporter-static-files-copy
# 使用YARN安裝
yarn add parcel-reporter-static-files-copy --dev
# 使用NPM安裝
npm install -D parcel-reporter-static-files-copy
使用方式
然後在專案根目錄新增一個檔案取名為.parcelrc
,Windows用戶要注意這個檔案是使用半型.
開頭,沒有副檔名,在LInux、Mac等類Unix的作業系統中這代表是預設不顯示的檔案。
{
"extends": ["@parcel/config-default"],
"reporters": ["...", "parcel-reporter-static-files-copy"]
}
這邊要注意,上面的"reporters"
裡面有一個"..."
要保留著,我一開始以為只是示意用的就把它刪除了,然後npm start
跑起來會連不上。
二代的功能與一代外掛一樣,預設會在打包時將根目錄的static
資料夾內的檔案複製到dist
資料夾內,或是開發者指定的位置。如果除了static
資料夾之外,還需要複製其他的資料夾、子資料夾、檔案的話,可以在package.json
設定檔內輸入以下設定。
{
// package.json 的其他設定
"staticFiles": {
"staticPath": [
"資料夾A",
"資料夾B/子資料夾",
"資料夾C/檔案名稱"
]
}
}
這個Parcel二代跟一代的外掛是同一個作者做的,更多資訊可以參考作者的GitHub頁面。
https://github.com/elwin013/parcel-reporter-static-files-copy