Пакет неправильно импортируется в проект - PullRequest
3 голосов
/ 23 апреля 2020

Недавно я создал пакет Typescript, который я хотел бы протестировать в приложении перед публикацией на NPM.

Файл записи (index.ts) выглядит следующим образом =>

import Builder from './core/builder';

export default Builder;

По сути, существует много файлов, но я хочу, чтобы пользователь просто использовал "stati c" класс Builder, который я экспортирую в индекс. так что пользователь может просто сделать import Builder from 'builderts'

Моя папка package.json следующая

  "name": "builderts",
  "main": "./dist/builderts.js",
  "types": "./dist/builderts.d.ts",
  "files": [
    "dist/*"
  ],
  "scripts": {
    "preversion" : "npm run lint",
    "prepare": "npm run build",
    "prepublishOnly": "npm test && npm run lint",
    "version" : "npm run format && git add -A src",
    "postversion" : "git push && git push --tags",
    "build": "tsc",
    "watch": "tsc-watch",
    "format": "prettier --write \"src/**/*.ts\" \"src/**/*.js\"",
    "lint": "eslint tsconfig.json"
  },

и моя tsconfig.json

{
    "compilerOptions": {
      "target": "es6",                          /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019', 'ES2020', or 'ESNEXT'. */
      "module": "amd",                          /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', 'es2020', or 'ESNext'. */
      "declaration": true,                      /* Generates corresponding '.d.ts' file. */
      "declarationMap": true,                   /* Generates a sourcemap for each corresponding '.d.ts' file. */
      "sourceMap": true,                        /* Generates corresponding '.map' file. */
      "outFile":"./dist/builderts.js",              /* Concatenate and emit output to single file. */
      "outDir": "dist",                         /* Redirect output structure to the directory. */
      "strict": true,                           /* Enable all strict type-checking options. */
      "esModuleInterop": true,                  /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */
      "forceConsistentCasingInFileNames": true  /* Disallow inconsistently-cased references to the same file. */
    },
    "include": ["src"],
    "exclude": ["node_modules", "dist"]
}

Проблема, с которой я сталкиваюсь Я пытался создать небольшой тестовый проект и установить модуль, используя

npm install absolute/path

, он устанавливается правильно, но когда я пытаюсь импортировать пакет, используя

import Builder from 'builderts';

У меня нет ни автозаполнения, а у меня ошибка: 1028 *

Файл 'D: /User/Local/gitRepo/builderts/dist/builderts.d.ts 'не является модулем.

Я не совсем понимаю, чего мне не хватает в процессе.

1 Ответ

0 голосов
/ 26 апреля 2020

Мне кажется, что вам нужно обновить types в package.json

Вы указали выше, что имя файла было index.ts, рассматривали ли вы обновление package.json? :

{ 
...
"types": "./dist/index.ts",
...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...