【问题标题】:Aliasing react as preact throws Cannot find module: 'react/jsx-runtime'别名 react as preact throws Cannot find module: 'react/jsx-runtime'
【发布时间】:2021-07-01 22:02:53
【问题描述】:

不要使用我链接的指南,它是旧的 - 改用答案中的指南

我正在尝试通过 following their guide 从 react 切换到 preact。我将 webpack.config.js 别名更改为添加:

  alias: {
    "react": "preact-compat",
    "react-dom": "preact-compat",
    .....

但是,当我运行 npm run build 时,我不断收到:

Failed to compile.

.\src\index.tsx
Cannot find module: 'react/jsx-runtime'. Make sure this package is installed.

我试过了:

当我在 preact 指南中注释掉别名更改时,一切正常。很高兴包含更多信息,但是我不确定什么是相关的。

这是来自 npm run build 的详细错误日志:

13 verbose stack Error: website@0.2.5 build: `node scripts/build.js`
13 verbose stack Exit status 1
13 verbose stack     at EventEmitter.<anonymous> (C:\Program Files\nodejs\node_modules\npm\node_modules\npm-lifecycle\index.js:332:16)
13 verbose stack     at EventEmitter.emit (events.js:315:20)
13 verbose stack     at ChildProcess.<anonymous> (C:\Program Files\nodejs\node_modules\npm\node_modules\npm-lifecycle\lib\spawn.js:55:14)
13 verbose stack     at ChildProcess.emit (events.js:315:20)
13 verbose stack     at maybeClose (internal/child_process.js:1048:16)
13 verbose stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:288:5)

【问题讨论】:

    标签: reactjs typescript create-react-app preact


    【解决方案1】:

    看起来您指的是一个过时的文档页面。这是latest one

    您应该改用preact/compat

    alias: {
      "react": "preact/compat",
      "react-dom": "preact/compat",
      ...
    

    【讨论】:

    • 补充一下,preact-compat 是我们的旧版兼容包,仅适用于 v8。 v10 我们切换到将其包含在主库本身中,这样用户就不需要去寻找其他人了。
    猜你喜欢
    • 2023-01-12
    • 2023-02-04
    • 2022-12-26
    • 2019-06-30
    • 2022-12-27
    • 2022-01-25
    • 2023-02-16
    • 2021-05-14
    • 2022-12-02
    相关资源
    最近更新 更多