andywer / andywer/threads.js

Documentation about parcel build is deprecated ? + tree-shaking not working

未关闭
#232 6 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
question
主要语言
TypeScript
星标
3.5k
派生
173
PR 合并指标
30 天内没有已合并 PR

描述

Hi, I did some tests to package a library that depends on threads.js and is built with parcel-bundler.

For compatibility purposes with NodeJS and browsers the library is written in ES6 then compiled in CJS for NodeJS and bundled for CDN delivery.
What I discovered is that the recommended parcel import to register threads.js (described [here](https://github.com/andywer/threads.js/blob/master/docs/getting-started.md#build-with-parcel-bundler)) doesn't have any effect, and the library is working as expected without the `import 'threads/register'`. It also prevents users to properly build their application if they want to use webpack.

The CDN delivery method is not working as we can't import the worker as parcel automatically split the worker code in a different file.

I've created a test repository https://github.com/PacoDu/threads-package that defines a simple library using threads.js and implement multiple client softwares using this library.

Also the `--experimental-scope-hoisting` (tree-shaking) option of parcel is not working with threads.js it throws:
```
../node_modules/threads/dist-esm/worker/implementation.browser.js does not export 'default'
```

Maybe I'm doing this the wrong way. Do you have any recommendation for packaging threads.js in a library ? (maybe it should be a `peerDependencies` ?)

贡献指南

这个仓库没有索引到贡献指南

评估

这个 Issue 还没有评估数据。

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。