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 摘要。