Не удается найти модуль при использовании пакета NPM с самописным набором текста - PullRequest
0 голосов
/ 26 января 2020

Итак, я нахожусь в процессе создания библиотеки машинописи для 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
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...