Можно ли изменить корневую директорию моего пакета Node.js npm при публикации? Что у меня есть следующие:Изменить корневую директорию на npm publish
├── lib
├── package.json
├── .npmignore
├── src
│ ├── index.js
│ └── sub
│ └── mymodule.js
└── test
В /src
все из моего источника ES2015 кода. Я переношу это с Babel в мой каталог /lib
. main
в моих package.json
указывает на lib/index.js
. После этого я могу сделать npm publish
(мой .npmignore
установлен в src
, поэтому будет опубликован только lib
). Теперь мой пакет развернут на npmjs.com, а в другом пакете я могу импортировать его с помощью import index from 'mypackage'
.
Пока все хорошо. Но что, если я хочу напрямую импортировать sub/mymodule.js
? Я должен написать import mymodule from 'mypackage/lib/sub/mymodule'
. Я действительно хочу import mymodule from 'mypackage/sub/mymodule'
без /lib/
на моем пути.
Как я могу это достичь? Документация npm упомянула directories.lib, что я могу установить в package.json
, но, похоже, она будет полностью проигнорирована. Я установил его в ./lib
, но он ничего не делает.
Да, спасибо, но это очень уродливое и подверженное ошибкам обходное решение для этого, потому что вам нужно записать cd в '/ lib' и сделать« npm publish »из этого каталога. Представьте, что вы забыли этот шаг и случайно сделали «npm publish» из корневого каталога вашего проекта. Вы попадаете в библиотеку, которая больше не работает. – LongFlick
Сегодня я наткнулся на этот комментарий и понял, что вы можете установить 'private: true' в' package.json', что предотвращает все попытки публикации. затем в вашем каталоге '/ lib', обязательно скопируйте' private: true' при копировании 'package.json', это ограничит публикацию только в вашем подготовленном каталоге. – Javran