Пакет NPM: лучшие практики и раскрытие нескольких путей импорта - PullRequest
0 голосов
/ 15 февраля 2019

Я создал пакет NPM, который использует Webpack и Babel для переноса / упаковки.

В моем package.json основной набор установлен на "main": "build/index.js".И в моей конфигурации Webpack у меня есть запись, установленная на entry: { app: './src/index.js' }.Мой входной файл показан ниже.

Все отлично работает, когда пакет установлен.Однако при такой настройке для каждого помощника предоставляются два пути импорта:

Это проблема для редакторов, которые поддерживают автоматический импорт, поскольку иногда они автоматически импортируются из 'my-package/build/utils/helper1', а не из предпочтительного пути 'my-package'.

Итак, два вопроса:

  1. Есть ли способ предотвратить раскрытие более длинного пути импорта?
  2. Что такоесчитается лучшей практикой при создании пакетов NPM.Допустимы ли мои настройки или я должен делать что-то другое?

Входной файл:

import helper1 from './utils/helper1';
import helper2 from './utils/helper2';

export {
  helper1,
  helper2,
};

const myPackage = {
  helper1,
  helper2,
};

export default myPackage;

Ответы [ 2 ]

0 голосов
/ 22 февраля 2019
  1. вы можете использовать Разрешение Webpack
  2. Я часто использую первый способ:
export {
  helper1,
  helper2,
};

Недавно я обнаружил, что мы можем использоватьObject.freeze() на экспорт.Это хорошая статья .

0 голосов
/ 18 февраля 2019

Я бы посоветовал объединить ваши helper1 и helper2 в один файл и назвать его helpers, затем вы можете поместить их в class myPackage, чтобы затем экспортировать их как модуль, подобный этому

import myPackage from './utils/helper';
// OR import {helper1, helper2} from './utils/helpers';


export default class myPackage {
      helper1,
      helper2,
};

ИЛИ

import {myPackage} from './utils/helpers';    
// OR import {helper1, helper2} from './utils/helpers';


module.exports.myPackage = (helper1, helper2) => {
  this.helper1 = helper1;
  this.helper2 = helper2;
};

Надеюсь, это поможет.

...