reactjs 错误无法解析输入模块React + Rollup

rryofs0p  于 2023-01-08  发布在  React
关注(0)|答案(2)|浏览(240)

我需要建立可共享的React组件,可以跨应用程序使用。
为此,我一直在关注下面的文章

我的配置看起来完全相同,除了npm软件包版本(即使尝试相同的版本)
文件夹结构与下面的内容相同

rollup.config.js

import resolve from "@rollup/plugin-node-resolve";
import commonjs from "@rollup/plugin-commonjs";
import typescript from "@rollup/plugin-typescript";
import dts from "rollup-plugin-dts";

const packageJson = require("./package.json");

export default [
{
 input: "src/index.ts",
 output: [
  {
    file: packageJson.main,
    format: "cjs",
    sourcemap: true,
  },
  {
    file: packageJson.module,
    format: "esm",
    sourcemap: true,
  },
],
plugins: [resolve(), commonjs(), typescript({ tsconfig: "./tsconfig.json" })],
},
{
 input: "dist/esm/types/index.d.ts",
 output: [{ file: "dist/index.d.ts", format: "esm" }],
 plugins: [dts()],
},
];

npm脚本

"rollup": "rollup -c"

但是,当我运行npm run rollup时,会抛出以下错误
[!]错误:无法解析条目模块(dist/esm/types/index.d.ts)。
错误:无法解析条目模块(dist/esm/types/index.d.ts)
请建议。谢谢!

k2arahey

k2arahey1#

我也遇到了你在使用rollup时遇到的同样的问题。在花了一些时间挖掘解决方案之后,我终于解决了这个问题。
我的配置看起来完全相同,除了npm软件包版本(即使尝试相同的版本)

  • 你说的异常才是问题所在,问题出在包版本控制上 *,8.3.3之后的包@rollup/plugin-typescript版本没有生成声明文件,也没有将声明文件存储在types文件夹中,该文件夹应该在路径:dist/cjs/dist/esm/

目前最新的版本是8.5.0,它仍然有问题。希望它能在不久的将来得到修复。

修复错误的步骤

  • 确保您的tsconfig.json文件具有"declarationDir": "types",以便在运行npm run rollup时指示bundler的typescript插件在types文件夹中创建和存储声明文件
  • 通过运行npm un @rollup/plugin-typescript --save-dev卸载现有的@rollup/plugin-typescript软件包版本
  • 使用npm i @rollup/plugin-typescript@8.3.3 --save-dev命令安装@rollup/plugin-typescript。* 如您所见,我们正在选择特定版本 *。

如果仍然遇到问题:

  • 手动更新package.json文件,如下所示:"@rollup/plugin-typescript": "8.3.3"。**请注意,**我已经删除了插入符号(^),以便将软件包绑定到版本8.3.3
  • 删除node_modules文件夹。您可以使用命令rm -rf node_modules
  • 删除package-lock.json
  • 运行npm i以使用package.json中指定的版本重新安装软件包
vom3gejh

vom3gejh2#

我修复了“无法解析条目模块(dist/esm/index.d.ts)”的错误。
我试着删除类型,降级react以匹配教程中的版本,但都不起作用。
我在教程上找到了这条评论,这很有帮助:https://dev.to/nasheomirro/comment/239nj

  • 我去掉了在汇总配置和包json中设置的主js和公共js。
  • 我将packagejson变量更改为import packageJson from "./package.json" assert { type: "json" };
  • 已将类型重新添加到汇总配置的输入中
  • 如上所述,将“@rollup/plugin-typescript”设置为版本“8.3.3”。

我现在有一个Dist文件夹与ESM文件夹,并没有得到任何错误.

相关问题