Могут ли издатели пакетов JS указывать на относительный каталог модулей? - PullRequest
1 голос
/ 28 июня 2019

Я недавно начал создавать изоморфные пакеты с такими вещами, как файлы .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-теме. Проблемы пятницы, не так ли?

...