Export maps and node support
還沒有人認領這個 Issue。
評估
- 難度
- 4/5
- 預估耗時
- 3-5 天
- 新手友好度
- 35/100
- Issue 類型
- 缺陷
- 描述清晰度
- 需要釐清
- 活躍度
- 停滯
- 技術堆疊
- javascript, node.js
- 領域
- build-system
研究方向
從 package.json 的 exports 和 main 欄位,以及產生的 dist/index.modern.js 和 dist/index.js 開始;在 Node.js v14.15.3 下重現 require('color2k')。將 package 的 exports 解析與 Node 關於條件式 exports 的文件進行比較。當已發布 package 的設定或輸出能夠透過 require() 載入,同時保留瀏覽器進入點時,即視為完成。
由索引模型根據 Issue 內容生成。
描述
Hello there 👋,
I recently switched to microbundle for a bunch of my libs and I love it so far, however, I ran into an issue where the modern bundle (via exports) doesn't seem to run inside node.js.
My (simplified) package.json looks like this:
{
"name": "color2k",
"sideEffects": false,
"exports": "./dist/index.modern.js",
"main": "./dist/index.js",
"unpkg": "./dist/index.umd.js",
"module": "./dist/index.module.js",
"source": "./src/index.ts",
"types": "./dist/index.d.ts",
"scripts": {
"build": "microbundle"
}
}
And after I run microbundle, my dist folder looks like this
index.d.ts
index.js
index.js.map
index.modern.js
index.modern.js.map
index.module.js
index.module.js.map
index.umd.js
index.umd.js.map
And after I publish with this config and run the following code with Node.js, I get the following error:
// my-file.js
const color2k = require('color2k');
// ...
SyntaxError: Unexpected token 'export'
at wrapSafe (internal/modules/cjs/loader.js:979:16)
at Module._compile (internal/modules/cjs/loader.js:1027:27)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1092:10)
at Module.load (internal/modules/cjs/loader.js:928:32)
at Function.Module._load (internal/modules/cjs/loader.js:769:14)
at Module.require (internal/modules/cjs/loader.js:952:19)
at require (internal/modules/cjs/helpers.js:88:18)
I suspect this is due to Node.js not knowing what to do with exports. For more context, I'm not using the mjs extension when running this code in node LTS v14.15.3.
Maybe this is more of a question rather than a bug but in general: How do I use exports with microbundle? How can I author a package that is both for Node.js and browsers?
- Do I need to write a conditional exports map?
- Do I need to post-fix the modern bundle with the
.mjsextension? If so how do I do that with microbundle?
Thanks for any support!
For now, I'll just remove the exports field.
- 主要語言
- JavaScript
- 星號
- 8.1k
- 分支
- 358
- PR 合併指標
- 30 天內沒有已合併 PR
貢獻指南
這個儲存庫沒有索引到貢獻指南
從這裡開始
- 先讀完整個 Issue,再讀專案的貢獻指南。
- 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
- Fork 儲存庫,在一個分支上完成修改。
- 送出 Pull Request,並在描述裡引用這個 Issue 編號。
developit/microbundle 的其他 Issue
-
CSS
難度 2/5 1-3 小時 新手友好度 68/100
developit/microbundle#1002 ·
-
難度 2/5 1-3 小時 新手友好度 75/100
developit/microbundle#789 · 1 則留言 ·
-
難度 3/5 1-2 天 新手友好度 55/100
developit/microbundle#1100 · 4 則留言 ·
-
難度 4/5 3-5 天 新手友好度 35/100
developit/microbundle#1094 · 1 則留言 ·
-
難度 3/5 1-2 天 新手友好度 45/100
developit/microbundle#1093 · 3 則留言 · 1 個 reaction ·
查看 developit/microbundle 的全部 Issue
相似的 Issue
-
awaiting triage bug Causes friction Hop Gui P1 P2 Transforms
難度 2/5 1-3 小時 新手友好度 75/100
-
難度 2/5 1-3 小時 新手友好度 75/100
-
難度 2/5 1-3 小時 新手友好度 75/100
-
難度 2/5 1-3 小時 新手友好度 70/100
georgestephanis/p2026#40 ·
-
難度 2/5 1-3 小時 新手友好度 75/100
Margaret-Petersen/food-delivery-app-clone-react-native#1981 ·