Czy mogę zmienić katalog główny mojego pakietu Node.js npm, kiedy robię publikację? Co mam jest następujący:Zmień katalog główny na npm publish
├── lib
├── package.json
├── .npmignore
├── src
│ ├── index.js
│ └── sub
│ └── mymodule.js
└── test
W /src
wszystko mojego kodu źródłowego ES2015. Przenoszę to z Babel do mojego katalogu /lib
. main
w moim package.json
wskazuje na lib/index.js
. Następnie mogę utworzyć npm publish
(mój .npmignore
jest ustawiony na src
, więc zostanie opublikowany tylko lib
). Teraz mój pakiet jest wdrażany na stronie npmjs.com, aw innym pakiecie mogę go zaimportować za pomocą import index from 'mypackage'
.
Jak dotąd tak dobrze. Ale co jeśli chcę zaimportować sub/mymodule.js
bezpośrednio? Muszę napisać: import mymodule from 'mypackage/lib/sub/mymodule'
. To, czego naprawdę chcę, to import mymodule from 'mypackage/sub/mymodule'
bez /lib/
na mojej ścieżce.
Jak mogę to osiągnąć? Dokumentacja npm o nazwie directories.lib, którą mogę ustawić w package.json
, ale wygląda na to, że zostanie całkowicie zignorowana. Ustawiłem to na ./lib
, ale nic nie robi.
Tak, dziękuję, ale jest to bardzo brzydki i podatny na błędy sposób obejścia tego problemu, ponieważ musisz przejść do '/ lib' i zrobić' zenddom 'z tego katalogu. Wyobraź sobie, że zapomniałeś tego kroku i zrobiłeś 'npm publish' przypadkowo z katalogu głównego twojego projektu. Kończysz w bibliotece, która już nie działa. – LongFlick
Natknąłem się na ten komentarz dzisiaj i zorientowałem się, że możesz ustawić 'private: true' w' pakiet.json', który zapobiega wszystkim próbom publikowania. następnie w twoim katalogu '/ lib', upewnij się, że powinieneś pominąć' private: true' podczas kopiowania 'pakiet.json', to ogranicza ci publikowanie tylko w twoim przygotowanym katalogu. – Javran