Aurelia CLI и braintree-web

Я пытаюсь использовать https://www.npmjs.com/package/braintree-web с Aurelia (используя aurelia-cli и RequireJS). Я застрял, пытаясь разрешить все многочисленные зависимости.

Чтобы использовать стороннюю библиотеку в Aurelia, она должна быть определена в файле aurelia.json.

Если я добавлю «braintree-web» в этот файл, тогда aurelia жалуется, что «braintree-web» требует модулей «American-Express», «Apple-Pay» и т. д. и т. д.

Если я вручную создам зависимости «American-Express», «Apple-pay», то каждая из них также будет ссылаться на «braintree-web/lib» и множество других зависимостей подкаталогов.

Короче говоря, я не могу загрузить модуль «braintree-web», потому что мне приходится вручную создавать все подзависимости, а это слишком сложно для работы.

Как я уже говорил выше, я использую requireJS, должны ли все эти зависимости разрешаться правильно?

Любые идеи относительно того, как я могу заставить это работать?

Спасибо


person user1980833    schedule 25.04.2018    source источник


Ответы (1)


Если вам нужны все зависимости, то с requirejs + aurelia-cli вам придется объявить все зависимости. Разрабатывается экспериментальная версия cli, которую вы можете найти здесь, где вам больше не нужно будет объявлять какие-либо зависимости в aurelia.json.

Кстати, с webpack вам также не нужно объявлять какие-либо зависимости.

А все ли вам действительно нужно? В документах упоминается, например, что вы можете импортировать только клиента. Все еще выглядит как целая куча зависимостей, но по крайней мере намного меньше, чем импорт основного index.js.

Вы также можете просто включить их готовый клиент, который, как мне кажется, https://js.braintreegateway.com/web/3.32.1/js/client.min.js

Кстати, человек, разрабатывающий вышеупомянутый экспериментальный CLI, на самом деле ищет людей, чтобы протестировать его с нетривиальными приложениями. Я и еще несколько человек попробовали его с отличными результатами, поэтому я могу порекомендовать вам попробовать. Если бы вы могли сообщить об этом в PR, это было бы действительно здорово.

person Fred Kleuver    schedule 25.04.2018
comment
Спасибо за это. Как мне включить готовый клиент прямо в мой код? Мне нужно иметь возможность импортировать код в мою модель представления, чтобы я мог вызвать клиент. т.е. мне нужно сказать import * as client from X - person user1980833; 25.04.2018
comment
Вероятно, проще всего загрузить готовый файл и сохранить его под scripts/braintree-web.3.32.1-client.min.js или где-то в этих строках. Затем просто добавьте его в раздел prepend ваших пакетов прямо перед require.js. Он будет доступен по всему миру через пространство имен braintree.. Установка @types/braintree-web в качестве зависимости разработчика, вероятно, является хорошей идеей, если вы используете машинописный текст. - person Fred Kleuver; 25.04.2018
comment
Спасибо, Фред, я тоже посмотрю на этот PR. - person user1980833; 26.04.2018
comment
Настройка такая же, просто проверьте правильный тег: git clone https://github.com/huochunpeng/cli aurelia-cli git checkout tags/at12 cd aurelia-cli npm install npm link npm install gulp@^4.0.0 typescript babel-register babel-polyfill и все готово. Затем в каталоге проекта npm link aurelia-cli - person Fred Kleuver; 26.04.2018