create-react-app 无法在类型为模块的包中加载带有.cjs扩展名的宏,

oyjwcjzk  于 22天前  发布在  React
关注(0)|答案(2)|浏览(18)

我创建了一个包含 macro.cjs 文件的包,该文件添加到 package.json:exports 中,请注意 package.json 有 type: module

描述错误

我得到了 an error :

Cannot find module '@effector/patronum/macro' from '/home/runner/work/patronum/patronum/integration/cra/src'

    Require stack:
      src/App.js
      src/App.test.js

    However, Jest was able to find:
    	'./demo.test.ts'
    	'./demo.ts'

    You might want to include a file extension in your import, or update your 'moduleFileExtensions', which is currently ['web.js', 'js', 'web.ts', 'ts', 'web.tsx', 'tsx', 'json', 'web.jsx', 'jsx', 'node'].

我检查了 babel-plugin-macros 是否支持 .cjs 宏:https://github.com/kentcdodds/babel-plugin-macros/blob/master/src/index.js#L5

你尝试恢复依赖项了吗?

是的

你在用户指南中搜索了哪些术语?

环境

Environment Info:

  current version of create-react-app: 4.0.3
  running from /Users/sova/.npm/_npx/c67e74de0542c87c/node_modules/create-react-app

  System:
    OS: macOS 11.5.2
    CPU: (8) arm64 Apple M1
  Binaries:
    Node: 16.5.0 - ~/.nvm/versions/node/v16.5.0/bin/node
    Yarn: 1.22.11 - ~/.nvm/versions/node/v16.5.0/bin/yarn
    npm: 7.19.1 - ~/.nvm/versions/node/v16.5.0/bin/npm
  Browsers:
    Chrome: 94.0.4606.81
    Edge: Not Found
    Firefox: 90.0.2
    Safari: 14.1.2
  npmPackages:
    react: ^17.0.1 => 17.0.2
    react-dom: ^17.0.1 => 17.0.2
    react-scripts: ^4.0.3 => 4.0.3
  npmGlobalPackages:
    create-react-app: Not Found

重现步骤

此外,我还为 CRA 制作了一个集成测试:

  1. 将包发布到 GitHub 注册表
  2. 根据 CRA 将其安装到应用程序中
  3. file 上运行 tests

预期行为

CRA 应该从另一个包加载带有 .cjs 扩展名的宏。

实际行为

可复现的演示

https://github.com/effector/patronum/tree/main/integration/cra/src
https://github.com/effector/patronum/runs/3848203844
我无法在 type:module 中将 .cjs 更改为 .js ,因为模块系统会在 .js 文件中认为它是 ESModule。

但是 CRA 不允许我在 macro.cjs 中导入它

lnvxswe2

lnvxswe21#

这个问题已经被自动标记为过时,因为它没有任何最近的活动。如果没有发生任何进一步的活动,它将在5天后被关闭。

p3rjfoxz

p3rjfoxz2#

我猜这已经通过#12605解决了,它确保babel处理依赖项中的.cjs文件。

相关问题