Webpack:如何将块公共路径传递给另一个块源?

时间:2018-09-20 22:23:51

标签: javascript webpack build

我使用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

0 个答案:

没有答案