尝试构建我的第一个库,并且我遵循了指南来这样做。我正在使用 rollup 来捆绑所有内容。
我目前面临的问题是汇总抱怨它无法解析我的打字文件,但我不明白为什么。这是确切的错误:
dist/esm/types/index.d.ts → dist/index.d.ts...
[!] RollupError: Could not resolve "../../../types/typings" from "dist/esm/types/components/CommentBase/interface.d.ts"
dist/esm/types/components/CommentBase/interface.d.ts
at error (C:\Users\Yanay\Documents\Coding\replyke\base\node_modules\rollup\dist\shared\rollup.js:284:30)
at ModuleLoader.handleInvalidResolvedId (C:\Users\Yanay\Documents\Coding\replyke\base\node_modules\rollup\dist\shared\rollup.js:24491:24)
at C:\Users\Yanay\Documents\Coding\replyke\base\node_modules\rollup\dist\shared\rollup.js:24453:26
这是我的 package.json 文件:
{
"name": "@replyke/base",
"version": "1.0.0",
"description": "",
"main": "dist/cjs/index.js",
"module": "dist/esm/index.js",
"files": [
"dist"
],
"types": "dist/index.d.ts",
"type": "module",
"publishConfig": {
"registry": "https://npm.pkg.github.com/replyke"
},
"scripts": {
"rollup-build-lib": "rollup -c --bundleConfigAsCjs",
"storybook": "storybook dev -p 6006",
"build-storybook": "storybook build",
"tailwind": "npx tailwindcss -i ./src/tailwind-input.css -o ./tailwind-dist/tailwind-output.css --watch"
},
"author": "Yanay",
"license": "ISC",
"devDependencies": {
"@rollup/plugin-commonjs": "^25.0.0",
"@rollup/plugin-node-resolve": "^15.1.0",
"@rollup/plugin-typescript": "^11.1.1",
"@storybook/addon-essentials": "^7.0.18",
"@storybook/addon-interactions": "^7.0.18",
"@storybook/addon-links": "^7.0.18",
"@storybook/blocks": "^7.0.18",
"@storybook/react": "^7.0.18",
"@storybook/react-vite": "^7.0.18",
"@storybook/testing-library": "^0.0.14-next.2",
"@types/react": "^18.2.7",
"flowbite": "^1.6.5",
"flowbite-react": "^0.4.7",
"moment": "^2.29.4",
"prop-types": "^15.8.1",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"react-icons": "^4.9.0",
"rollup": "^3.23.0",
"rollup-plugin-dts": "^5.3.0",
"storybook": "^7.0.18",
"tailwindcss": "^3.3.2",
"tslib": "^2.5.3",
"typescript": "^5.0.4"
},
"peerDependencies": {
"react": "^18.2.0",
"react-dom": "^18.2.0"
}
}
这是我的 rollup.config.js 文件:
const resolve = require("@rollup/plugin-node-resolve");
const commonjs = require("@rollup/plugin-commonjs");
const typescript = require("@rollup/plugin-typescript");
const dts = require("rollup-plugin-dts");
const packageJson = require("./package.json");
// import from assert { type: "json" };
module.exports = [
{
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.default()],
},
];
这是我的
tsconfig.json
文件
{
"compilerOptions": {
"target": "es2016",
"jsx": "react",
"module": "ESNext",
"moduleResolution": "node",
"declaration": true,
"emitDeclarationOnly": true,
"outDir": "dist",
"declarationDir": "types",
"allowSyntheticDefaultImports": true,
"esModuleInterop": true,
"forceConsistentCasingInFileNames": true,
"strict": true,
"skipLibCheck": true,
"rootDir": "src"
}
}
我的
types/typings.d.ts
文件夹和文件位于我的 src 文件夹中,并且所有内容都导入得很好,除非使用汇总来构建
将文件从
file.d.ts
重命名为 file.ts
。