У меня есть несколько опубликованных модулей npm, все модули для существующих библиотек, например three.js или реагируют.
Пакеты, кажется, загружаются, но я не получил никаких отзывов о том, правильно это или нет.
Какова цель высокого уровня при определении зависимостей?
Это сбивает с толку, потому что каждое "расширение" просто предполагает, что в некотором контексте доступен THREE
объект.
Таким образом, мой модуль three.js только упоминает:
"devDependencies": {
"three": "^0.88.0"
}
И он используется следующим образом:
require( 'three-instanced-mesh' )(THREE)
Который имеет смысл и не делает.
Модуль не может работать без three.js и надлежащего контекста, переданного в (THREE
), но так как я передаю его во время выполнения (?), Похоже, что это не настоящая зависимость. Когда я проверяю репо и хочу разработать в нем, мне нужно установить three.js
если я хочу, чтобы код запускался.
Я опубликовал компонент React, который я хотел использовать как таковой:
npm install my-module
import MyModule from 'my-module
<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'?
Какова цель высокого уровня при определении зависимостей?
Вы должны определить, какие зависимости вы используете, только при разработке (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.
/src
с кучей файлов, написанных с es6 или что-то еще. Как минимум я бы связывать их вместе, но в конце концов должен foo
пункт а) в комплекте ES6 index.js б) в комплекте / transpiled ES5 index.js с) в комплекте / transpiled / Минимизированный index.min.js г) просто es6 запись main.js и т. д.