如何在Vue-CLI Web服务器中添加静态JS文件路由?

时间:2018-03-30 13:29:53

标签: webpack webpack-dev-server vue-cli

我需要绕过vue-cli(Webpack Dev Server)中默认出现的web-server的特定Javascript文件,以便我可以直接从浏览器打开js文件。

适用于Firebase Messaging Service Worker,因此需要位于根目录中。

EG。 http://localhost:8080/firebase-messaging-sw.js

1 个答案:

答案 0 :(得分:0)

在webpack.dev.conf.js中添加下一个代码

  1. 需要fs
  2. 在挂钩之前添加到devServer conf。
  3. 示例:

    const fs = require('fs')
    const devWebpackConfig = merge(baseWebpackConfig, {
      module: {
        rules:rules
      },
      devtool: config.dev.devtool,
      devServer: {
        clientLogLevel: 'warning',
         before(app){
           app.get('/firebase-messaging-sw.js', function(req, res) {
              let content = fs.readFileSync(path.resolve(__dirname, '../src/firebase-messaging-sw.js'), 'utf-8')
              res.header("Content-Type", "text/javascript");
              res.send(content)
              return res
        });
    },
    

    不要忘记以prod模式复制文件。

    new CopyWebpackPlugin([
      {
        from: path.resolve(__dirname, '../src/firebase-messaging-sw.js'),
        to: config.build.assetsRoot + '/firebase-messaging-sw.js'
      }
    ]),