Я недавно начал создавать изоморфные пакеты с такими вещами, как файлы .esm и .jsx, передаваемые для node.js, и в то же время потребляемыми пакетами, такими как webpack. Я знаю, что могу указывать потребителям правильное направление, предоставляя ключи main, module или browser в package.json. например.
// package.json
{
"name": "react-patterns",
"version": "0.0.1",
"main": "dist/components/index.js",
"browser": "components/index.js",
...
, и это будет хорошо работать, когда index.js экспортирует список компонентов, например.
// index.js
import Image from './Image';
import Button from './Button';
export { Image, Button }
// consumer.js
import { Button } from 'react-patterns';
Но чтобы быть ленивым (или писать меньше кода учета), возможно ли было бы написать что-то подобное в моем package.json?
// package.json
{
"name": "react-patterns",
"version": "0.0.1",
"main": "dist/components",
"browser": "components",
...
И есть ли Button.js и модуль Image.js прямо в верхней части каталога? Таким образом, потребитель может сделать что-то похожее на import merge from 'lodash/merge;
, например.
// consumer.js
import Button from 'react-patterns/Button';
Может быть, немного эзотерика или даже плохая практика? Несмотря на это, я не видел, чтобы кто-нибудь упоминал об этом в учебнике или спрашивал в SO-теме. Проблемы пятницы, не так ли?