Итак, я нахожусь в процессе создания библиотеки машинописи для NPM. Мне удалось получить один компонент этой библиотеки для импорта в приложение, в котором я использую этот пакет. Однако проблема возникает, когда я пытаюсь импортировать перечисление, которое также экспортируется из того же файла, в котором компонент объявлен в Я получаю следующую ошибку:
Module not found: Can't resolve '@someorg/library/dist/Component/Component' in '/Users/someuser/project-dir/src/components/AnotherComponent'
Я даже получаю эту ошибку, обращаясь непосредственно к node_modules и не используя область действия пакета. Ниже приведен общий макет моего компонента.
// Component.tsx
import React, { Fragment } from 'react';
export enum SomeEnum {
a,
b,
c
}
type Props = {
aProp: SomeEnum
};
const Component = ({ aProp = SomeEnum.a }: Props) => {
// some code...
};
export default Component;
Структура моего проекта и папки dist выглядит следующим образом:
project-dir
dist
Component
Component.d.ts
index.d.ts
index.es.js
index.js
src
Component
Component.tsx
index.tsx
Кажется, что компонент сгенерировал файл d.ts, и я Я думал, что это заставило бы его работать, но он его вообще не распознал.
Я пробовал несколько разных вещей, играя с путями в tsconfig. json и как обрабатываются включения в пакете. json. Я выследил несколько различных проблем на github, которые казались похожими, но я не смог понять это. Я могу предоставить больше информации, если это необходимо, пожалуйста, дайте мне знать, я просто хотел оставить это коротким. Ниже я включил конфигурацию машинописного текста.
// tsconfig.json
{
"compilerOptions": {
"outDir": "dist",
"module": "esnext",
"target": "es5",
"sourceMap": true,
"declaration": true,
"lib": [
"dom",
"dom.iterable",
"esnext"
],
"baseUrl": "./",
"paths": {
"library/*": [ "src/*" ]
},
"allowJs": true,
"skipLibCheck": true,
"esModuleInterop": true,
"allowSyntheticDefaultImports": true,
"forceConsistentCasingInFileNames": true,
"moduleResolution": "node",
"resolveJsonModule": true,
"isolatedModules": true,
"jsx": "react",
"strict": true
},
"include": ["src/**/*"],
"exclude": ["node_modules", "dist"],
"esModuleInterop": true
}