Использование пакетов NPM в Titanium
Начнем с того, что это возможно. Да, это действительно так. Я заметил, что многие люди не знали, что они могут просто подключить любой пакет NPM, какой захотят.
Итак ... как нам это настроить?
- запустите
npm initв каталогеapp/libв своем проекте Alloy или в своемResourcesкаталоге, если вы используете классическое приложение (если вы все еще используете, пора перейти к Alloy) - Следуйте инструкциям NPM при выполнении init. Вам не нужно ничего заполнять.
- Запустите
npm i [packagename]в каталоге lib, чтобы установить пакет, скажем to.imagecache, поэтомуnpm i to.imagecache - Добавьте каталог
lib/node_modulesи файлpackage-lock.jsonв свою папку.gitignore. Нет необходимости фиксировать все эти файлы, если их легко восстановить. - На любом другом компьютере, который вы хотите настроить, просто перейдите в свой
libкаталог, запуститеnpm install, и все пакеты будут установлены в ваше приложение.
Использование пакетов
Использование аналогично любому другому модулю или файлу библиотеки. Предполагая, что вы установили to.imagecache, вы можете просто добавить его вот так
var imageCache = require('to.imagecache');
Поскольку модули узлов обнаруживаются автоматически, все будет работать так, как ожидалось.
Как найти пакеты?
Многие пакеты Titanium используются с использованием ключевого слова titanium. Однако для большей организованности я создал ключевое слово titanium-module. Когда вы создаете файл commonjs module / lib, которым хотите поделиться, пожалуйста, опубликуйте его, используя ключевое слово titanium-module.
Вы можете найти пакеты здесь: https://www.npmjs.com/search?q=keywords:titanium-module
На данный момент существует всего пара пакетов, все на мое имя, использующие ключевое слово. Тем не менее, я надеюсь (и ожидаю), что вскоре за ними последуют другие. Так что, если вы пишете модули, используйте NPM и опубликуйте его с ключевым словом titanium-module!
Зависимости
А теперь самое интересное. Зависимости! В целях демонстрации я создал пакет, расширяющий to.imagecache, чтобы иметь ImageView, который кэширует собственное изображение с асинхронной загрузкой.
Я назвал этот пакет to.cachedimageview, и его реализация очень проста.
- Запустите
npm i to.cachedimageviewв вашемlibкаталоге. (или Ресурсы для классического проекта). - При этом будут установлены и
to.cachedimageview, иto.imagecache, поскольку последний зависит от первого. - Тогда все, что вам нужно сделать, это использовать его в ImageView следующим образом:
<ImageView id="myImage" module="to.cachedimageview" />
Твоя очередь
Теперь дело за вами. Начните создавать потрясающие пакеты, расширяйте лучшие пакеты и делитесь ими ниже на TiSlack и пишите о них в блогах!
Пакеты прямо сейчас
- Ti.xhr (ранее известный как
xhr.js) - RESTe
- To.imagecache
- Стабаллой