Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Uncaught SyntaxError: Unexpected token < #18

Open
mmwo opened this issue Feb 3, 2019 · 5 comments
Open

Uncaught SyntaxError: Unexpected token < #18

mmwo opened this issue Feb 3, 2019 · 5 comments
Labels
enhancement New feature or request question Further information is requested wontfix This will not be worked on

Comments

@mmwo
Copy link

mmwo commented Feb 3, 2019

I wanted to create an npm package that internally uses web worker. I got working configuration for that in the worker-loader package for webpack as follows.

{
  test: /\.worker\.js$/,
  use: {
    loader: 'worker-loader',
    options: {
      inline: true
    }
  }
}

then I could use my library in some react project like that

import {BoardGenerator} from '@yufuzu/shipbattle-board';
const generator = new BoardGenerator();

Board generator is my npm library that uses it's web worker.

When I switched to this plugin I get an error that it cannot find web worker. Everything compiles properly and I am able to see use it in live mode in the browser. (From this project npm start). Problem occurs only when I import that library in some other project.

Repo:
https://github.com/Jitra/shipbattle-generatorv2 working in here npm start
React repo importing npm package:
https://github.com/Jitra/react-shipbattle-generator-example not working here

Old version with worker-loader
https://github.com/Jitra/shipbattle-generator

@mmwo
Copy link
Author

mmwo commented Feb 11, 2019

I appreciate your work for using webworker with module imports. Any plans of supporting web workers that are imported from node_modules lib. Now there are two libraries:
worker-loader Works imported from node_modules, by inline:true, but no web worker type: module supported
worker-plugin supports worker type: module, but but not inlining as plugin above :(

I wish to switch from worker-loader to this plugin for module importing support in web workers but I stuck

@developit
Copy link
Collaborator

Bundling a worker to a data URI is generally not a good idea. It's putting extra strain on the parser in the main thread for no reason.

I'm not sure there is a reasonable way to make this work - webpack's output isn't really designed to be nested inside another Webpack bundle, it breaks things like pathing.

@developit developit added enhancement New feature or request question Further information is requested wontfix This will not be worked on labels Feb 19, 2019
@altinselimi
Copy link

Im running in the same issue with a library I published some time ago. Worker-loader is failing to recognize the inline option so I had to move to worker-plugin, but I'm still not being able to get it to a working state. Is there any way to mirror worker-loader's inline method ?

Repo: https://github.com/altinselimi/kalendar/tree/worker-plugin

@maksnester
Copy link

So what would be the right way of creating an npm library with a builtin web worker?

@altinselimi
Copy link

@maksnester rollup as a bundler. Check out my kalendar repo for an example.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request question Further information is requested wontfix This will not be worked on
Projects
None yet
Development

No branches or pull requests

4 participants