我需要建立可共享的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)
请建议。谢谢!
2条答案
按热度按时间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
中指定的版本重新安装软件包vom3gejh2#
我修复了“无法解析条目模块(dist/esm/index.d.ts)”的错误。
我试着删除类型,降级react以匹配教程中的版本,但都不起作用。
我在教程上找到了这条评论,这很有帮助:https://dev.to/nasheomirro/comment/239nj
import packageJson from "./package.json" assert { type: "json" };
我现在有一个Dist文件夹与ESM文件夹,并没有得到任何错误.