У меня есть пакет npm, структурированный следующим образом:
my-package
├── build
├── many.config.files
├── package.json
└── src
Имеет смысл поместить вспомогательные файлы, такие как файлы конфигурации и scripts
, в корень моего пакета.Тогда имело смысл иметь файл src
, чтобы мои исходные файлы не смешивались со всеми моими файлами конфигурации.Тогда имело смысл иметь каталог build
, в который будет помещаться встроенная версия src
(может быть, произойдет некоторая передача и минификация и т. Д.).
Теперь в моем каталоге src
есть различные файлы JS ипапки, все из которых пользователи моей библиотеки должны иметь возможность импортировать.
src
├── file1.js
├── file2.js
└── utils
Например, import utils3 from "my-package/utils/file3.js"
должен работать для них просто отлично.Они не должны ввести import utils3 from "my-package/build/utils/file3.js"
для импорта файла.
Как лучше всего справляться с этой ситуацией?
Iпробовал / рассматривал различные подходы:
Установка "main": "./build"
в моем package.json.Это не решило ошибку импорта для меня.
Установка "directories": {"utils": "./build/utils"}
в моем package.json.Это не решило ошибку импорта для меня.
Копирование package.json в мой каталог сборки во время сборки.Затем npm publish
, используя каталог сборки вместо всего проекта.Это имеет преимущество только в совместном использовании встроенного кода.Это имеет недостаток, заключающийся в том, что встроенный пакет будет иметь в своем файле package.json информацию, которая не имеет смысла, поскольку файлы / каталоги отсутствуют / неправильно расположены.
Что-то вроде module.exports = require('./build')
в файле index.js.Это тоже не сработало.