重新启动后worker-loader无法正常工作

时间:2020-10-02 13:32:30

标签: vue.js webpack web-worker

我正在尝试将Web与vue-cli项目一起使用。

我的工作人员在文件 user.worker.js 中。当我第一次运行vue-cli-service serve时,它可以工作,但是重新启动后,webpack尝试加载 user.worker.worker.js ,但由于该文件不存在而无法加载。如果我重命名或移动文件,则该文件将首次运行,但重新启动后将再次失败。

App.vue

<template>
  <div id="app"></div>
</template>

<script>
import Worker from "@/user.worker";

export default {
  name: "App",
  created() {
    const inst = new Worker();
    inst.postMessage({
      path: `some data`,
    });
  },
};
</script>

user.worker.js

onmessage = async ({ path }) => {
  postMessage({ path });
};

vue.config.js

module.exports = {
  chainWebpack: (config) => {
    config.module
      .rule("worker")
      .test(/\.worker\.js$/)
      .use("worker-loader")
      .loader("worker-loader")
      .end();
  },
};

package.json

  "name": "worker-project",
  "version": "0.1.0",
  "private": true,
  "scripts": {
    "serve": "vue-cli-service serve",
    "build": "vue-cli-service build",
    "lint": "vue-cli-service lint"
  },
  "dependencies": {
    "core-js": "^3.6.5",
    "vue": "^2.6.11",
    "worker-loader": "^3.0.3"
  },
  "devDependencies": {
    "@vue/cli-plugin-babel": "^4.5.0",
    "@vue/cli-plugin-eslint": "^4.5.0",
    "@vue/cli-service": "^4.5.0",
    "babel-eslint": "^10.1.0",
    "eslint": "^6.7.2",
    "eslint-plugin-vue": "^6.2.2",
    "vue-template-compiler": "^2.6.11"
  },
  "eslintConfig": {
    "root": true,
    "env": {
      "node": true
    },
    "extends": [
      "plugin:vue/essential",
      "eslint:recommended"
    ],
    "parserOptions": {
      "parser": "babel-eslint"
    },
    "rules": {}
  },
  "browserslist": [
    "> 1%",
    "last 2 versions",
    "not dead"
  ]
}

0 个答案:

没有答案