Open fengmk2 opened 1 year ago
https://github.com/node-modules/is-type-of/pull/22 https://github.com/eggjs/egg-bin/pull/239 egg-bin 需要支持 esm 跑 test 和 cov
通过 https://github.com/node-modules/tshy-after 保留 package.json types 配置。
Exception during run: ReferenceError: __dirname is not defined in ES module scope
解决办法
import path from 'node:path';
import { fileURLToPath } from 'node:url';
const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);
https://johnnyreilly.com/dual-publishing-esm-cjs-modules-with-tsup-and-are-the-types-wrong
通过 @arethetypeswrong/cli 来检查配置是否正确
通过字符串替换解决 import.meta
在 commonjs 中的语法错误问题。
支持自动复制 web 相关文件 https://github.com/node-modules/tshy-after/pull/2
大佬,目前egg.js有什么办法可以在让应用不使用ts的情况下支持esm吗
大佬,目前egg.js有什么办法可以在让应用不使用ts的情况下支持esm吗
目前 egg 发布的 npm 包只支持 cjs 产物。需要等 egg v4 发布之后才会同时支持 cjs 和 esm 构建产物。
https://github.com/nodejs/node/pull/55085
可能不需要了,如果 nodejs 20 就能支持 cjs 里面 require esm,那么我们就不需要编译出2份产物了。
请详细告知你的新点子(Nice Ideas):
https://github.com/node-modules/urllib/pull/468 目前看起来没有什么问题,非常轻松就支持了。
修改内容
__dirname
单测中的 helper 方法test/helper.ts
.github/workflows/nodejs.yml
on: push: branches: [ master ] pull_request: branches: [ master ]
jobs: Job: name: Node.js uses: node-modules/github-actions/.github/workflows/node-test.yml@master with: os: 'ubuntu-latest, macos-latest, windows-latest' version: '18.19.0, 18, 20, 22' secrets: CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
.github/workflows/pkg.pr.new.yml
jobs: build: runs-on: ubuntu-latest
.eslintrc
.gitignore