Лучшие практики использования peerDependency и devDependency - PullRequest
0 голосов
/ 09 мая 2020

Я пишу библиотеку компонентов реакции и не хочу связывать реагирование, поэтому я добавил библиотеки в peerDependencies, а не в dependencies.

Кроме того, чтобы предотвратить эти глупые предупреждения об отсутствии peerDependencies, я добавляю те же библиотеки в раздел devDependencies.

Это не DRY, но для меня важнее фиксированное предупреждение чем пакет DRY. json.

Итак, вопрос: существует ли метод DRYer для достижения этой цели, или я действительно следую рекомендациям мая 2020 года?

{
    "peerDependencies": {
        "react": "^16.9.0",
        "react-dom": "^16.9.0",
        "tslib": "^1.11.0",
    },
    "devDependencies": {
        "@types/react": "^16.9.0",
        "react": "^16.9.0",
        "react-dom": "^16.9.0",
        "typescript": "^3.8.0"
    },
    "dependencies": {
        // nothing here
    }
}

Ответы [ 2 ]

1 голос
/ 29 мая 2020

Я не уверен, что вы используете для создания своего пакета, но если вы используете Webpack или Rollup, вы можете определить внешние элементы, которые не будут включены в пакет.

Все, что у вас есть в peerDependencies будет go в dependencies, а в конфигурации для webpack или rollup вы должны определить внешние элементы следующим образом:

{
  ...
  externals: ['react', 'react-doe', 'tslib'],
}
0 голосов
/ 14 мая 2020

На данный момент кажется, что ответ: НЕТ, метода сушки нет.

Но когда-нибудь в будущем, с npm v7, это изменится: npm объявлено об автоматической установке peerDependency пакетов.

См. Также: https://github.com/npm/rfcs/blob/latest/accepted/0025-install-peer-deps.md https://blog.npmjs.org/post/617484925547986944/npm-v7-series-introduction

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