Я пытаюсь собрать пакет утилит npm. В моем каталоге src
у меня есть набор файлов машинописи, которые объявляют несколько интерфейсов / типов. Например, в src/value-updatable.ts
у меня есть:
export interface UnaryValueUpdatable<T> {
value: T;
onChange: (value: T) => void;
}
Я компилирую весь свой исходный код в dist/
, потому что это пакет утилит, в котором нет записи или основного файла , я просто хочуиспользовать типы в других проектах. Я даже не уверен, нужна ли компиляция, но проблема все та же. Когда я устанавливаю пакет в другом проекте, мне приходится импортировать из dist/
или src/
, а не из самого имени пакета.
Например:
import {UnaryValueUpdatable} from "my-utility-package/dist/UnaryValueUpdatable"
Как мне настроить мой пакет так, чтобы он отображал "красивые" пути: import {whatever} from "my-utility-package/whatever"
?
package.json:
{
"name": "my-utility-package",
"version": "1.0.0",
"files": [
"dist/**/*"
],
"scripts": {
"build": "tsc"
},
"license": "MIT",
"dependencies": {
"typescript": "^3.6.4"
}
}
tsconfig:
{
"compilerOptions": {
"target": "es5",
"lib": ["dom", "dom.iterable", "esnext"],
"skipLibCheck": true,
"esModuleInterop": true,
"allowSyntheticDefaultImports": true,
"strict": true,
"forceConsistentCasingInFileNames": true,
"module": "commonjs",
"outDir": "dist",
"moduleResolution": "node",
"resolveJsonModule": true,
"declaration": true,
"jsx": "react"
},
"include": ["src"],
"exclude": ["dist"]
}