我是我專案的下一個 js,它使用 webpack 5 編譯打字稿代碼
我在路徑“/workers/**/*.worker.js”下的公共檔案夾中有幾個網路作業者腳本
我想知道我是否也可以用打字稿撰寫它們,或者至少使用 babel 將它們轉換為 es5(對于舊瀏覽器)
我知道“公共”檔案夾下的任何內容都按原樣和檔案(如 CDN)提供
我可以在我的專案中添加一個“workers”檔案夾并使用 webpack 和 next js 將它們加載到公共路徑中嗎?
uj5u.com熱心網友回復:
感謝@nalin-ranjan,我想出了解決方案
在我的“next.config.js”中,我向我的 webpack 配置添加了一條規則:
module.exports = {
webpack: (config) => {
config.module.rules.push({
test: /\.worker\.ts$/,
type: 'asset/resource',
generator: {
filename: 'static/[hash:5].[name].js',
},
use: [
{
loader: 'ts-loader',
options: {
transpileOnly: true,
configFile: __dirname '/worker.tsconfig.json',
},
},
],
})
return config
},
}
有了這條規則,我可以要求我的工人并將它們用作 URL 并轉換打字稿
另外,我必須添加一個禁用了“isolatedModules”選項的新“tsconfig”(因為網路作業者不是模塊)。為此,我創建了一個與 next.js 相同的 tsconfig 檔案,但禁用了 isolatedModules。原因是 next.js 禁止您禁用 isolatedModules 并將其重置回來
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/419820.html
標籤:
上一篇:self.__WB_MANIFEST不會被InjectManifest生成的url替換,以便使用serviceworker進行預快取
