Я использую Webpack для создания двух скриптов (клиент и сервисный работник).
module.exports = {
entry: {
'js/client': path.resolve(__dirname, 'src/client/index.ts'),
sw: path.resolve(__dirname, 'src/service-worker/index.ts')
},
module: {
rules: [
{
test: /\.tsx?$/,
use: 'ts-loader',
exclude: /node_modules/
}
]
},
resolve: {
extensions: ['.tsx', '.ts', '.js']
},
output: {
filename: '[name].[hash:5].js',
path: path.resolve(__dirname, 'dist'),
publicPath: '/'
}
}
Где-то в client
Я должен указать открытый путь к sw
чанку:
navigator.serviceWorker.register('/sw.js')
Как передать sw.js
открытый путь с хешем в client.js
?
Я пытался:
const swUrl = require('file-loader!../service-worker/index.ts')
// or require('file-loader!ts-loader!../service-worker/index.ts')
navigator.serviceWorker.register(swUrl)
но этовыдает неправильный путь и выдает файл *.ts
вместо *.js