Я пытаюсь понять, как правильно разработать приложение для машинописи и библиотеку машинописи, которые зависят от сторонней библиотеки машинописи.Моя библиотека и приложение не публикуются на npm (и также не должны публиковаться).
Пока у меня есть следующее.
библиотека:
{
"name": "lib",
"main": "dist/index.js",
"types": "dist/index.d.ts",
"scripts": {
"prepare": "npm run build",
"build": "tsc"
},
"dependencies": {
"my-third-party-library": "^x.y.z"
},
"peerDependencies": {
"my-third-party-library": "^x.y.z"
}
}
app:
{
"name": "app",
"main": "dist/index.js",
"types": "dist/index.d.ts",
"dependencies": {
"my-third-party-library": "^x.y.z",
"lib": "file:../lib"
}
}
Мои вопросы:
1) Правильно ли указывать стороннюю библиотеку в качестве зависимостикак peerDependency?
2) Можно ли просто запустить npm install
в app
без необходимости запуска npm link
или это абсолютно необходимо?
3) Необходимо ли запускать npm run build
хотя бы один раз в lib
для создания папки dist
?
4) Это правильный способ установки?Я спрашиваю, потому что у меня сложилось впечатление, что таким образом я получаю две установленные версии сторонней библиотеки: одну, которая находится внутри node_modules
от lib
, а другую, которая установлена внутри node_modules
от app
.С этой настройкой я считаю, что вещи из моей библиотеки не работают внутри моего приложения.Чего мне не хватает?