понимание npm peerDependency с файлом: ссылка - PullRequest
0 голосов
/ 14 сентября 2018

Я пытаюсь понять, как правильно разработать приложение для машинописи и библиотеку машинописи, которые зависят от сторонней библиотеки машинописи.Моя библиотека и приложение не публикуются на 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.С этой настройкой я считаю, что вещи из моей библиотеки не работают внутри моего приложения.Чего мне не хватает?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...