как установить зависимости и как скомпилировать модуль npm?

1

У меня есть несколько опубликованных модулей npm, все модули для существующих библиотек, например three.js или реагируют.

Пакеты, кажется, загружаются, но я не получил никаких отзывов о том, правильно это или нет.

зависимости

Какова цель высокого уровня при определении зависимостей?

Three.js:

Это сбивает с толку, потому что каждое "расширение" просто предполагает, что в некотором контексте доступен THREE объект.

Таким образом, мой модуль three.js только упоминает:

"devDependencies": {
 "three": "^0.88.0"
}

И он используется следующим образом:

require( 'three-instanced-mesh' )(THREE)

Который имеет смысл и не делает.

Модуль не может работать без three.js и надлежащего контекста, переданного в (THREE), но так как я передаю его во время выполнения (?), Похоже, что это не настоящая зависимость. Когда я проверяю репо и хочу разработать в нем, мне нужно установить three.js если я хочу, чтобы код запускался.

реагировать

Я опубликовал компонент React, который я хотел использовать как таковой:

  1. npm install my-module
  2. import MyModule from 'my-module
  3. <MyModule/>

По какой-то причине я перечислил как реакцию peerDependencies.

<MyModule/> в JSX будет означать, что я сделал что-то, чтобы реагировать уже в этом контексте (аналогично тому, как THREE передается в первом примере?).

Разница здесь в том, что я не определяю класс во время выполнения, и, таким образом, вызов import MyModule требует реагирования на доступность в MyModule.js?

Какая цель здесь и как ее описать? Я только знаю, что я не хочу, чтобы npm install my-module для установки другой версии реакции, или чтобы заставить больше реагировать так, чтобы быть связанным в конечном комплекте (но я даже не уверен в этом).

Какая зависимость (если таковая имеется) должна react на my-react-component и как я могу связать ее с моим модулем?

Например, используя externals вещь с webpack против фактического import React from 'react'?

строить

Если я настроил свое репо для работы с последним и самым большим из JS (или даже не JS?), Как и что я должен опубликовать?

import Foo from 'foo' //<-- where does 'foo' point and what is 'foo'?
  • 0
    Проголосовать за закрытие? Можно ли решить вопрос, удалив часть о компиляции?
Теги:
npm
bundling-and-minification

1 ответ

1
Лучший ответ

Какова цель высокого уровня при определении зависимостей?

Вы должны определить, какие зависимости вы используете, только при разработке (devDependencies) и тех, которые необходимы, когда кто-то устанавливает ваш пакет и будут установлены автоматически (зависимости) и зависимости, которые вы должны быть доступны, но вы хотите, чтобы пользователь для установки (что, честно говоря, не имеет смысла) peerDependencies.

Разница здесь в том, что я не определяю класс во время выполнения, и, таким образом, вызов import MyModule требует реагирования на доступность в MyModule.js?

Для этого требуется, чтобы React был доступен, когда файл импортируется, т. myModule.: myModule, но A должен реагировать на импорт. Взаимодействие с равными равными является наилучшим образом здесь.

Например, используя внешнюю вещь с webpack против фактического импорта React от "реагировать"?

Использование externals в webpack просто говорит webpack не связывать реакцию и говорит, что реакция будет импортирована до импорта этого компонента.

Если я настроил свое репо для работы с последним и самым большим из JS (или даже не JS?), Как и что я должен опубликовать?

Обычно файл index.js, содержащий библиотеку, которая была проиндексирована/объединена. Опубликуйте это с помощью npm, вам нужно настроить основное поле на package.json

импортировать Foo из 'foo'//<- где "foo" указывает, а что "foo"?

foo указывает на имя созданного вами пакета, то есть: имя, в котором этот пакет был опубликован. Когда вы перейдете на npmjs.org и выполните поиск foo, это будет пакет. foo находится в ваших node_modules.

  • 0
    Что касается последних двух абзацев, скажем, у меня есть /src с кучей файлов, написанных с es6 или что-то еще. Как минимум я бы связывать их вместе, но в конце концов должен foo пункт а) в комплекте ES6 index.js б) в комплекте / transpiled ES5 index.js с) в комплекте / transpiled / Минимизированный index.min.js г) просто es6 запись main.js и т. д.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню