Использование пакетов NPM в Titanium

Начнем с того, что это возможно. Да, это действительно так. Я заметил, что многие люди не знали, что они могут просто подключить любой пакет NPM, какой захотят.

Итак ... как нам это настроить?

  1. запустите npm init в каталоге app/lib в своем проекте Alloy или в своем Resources каталоге, если вы используете классическое приложение (если вы все еще используете, пора перейти к Alloy)
  2. Следуйте инструкциям NPM при выполнении init. Вам не нужно ничего заполнять.
  3. Запустите npm i [packagename] в каталоге lib, чтобы установить пакет, скажем to.imagecache, поэтому npm i to.imagecache
  4. Добавьте каталог lib/node_modules и файл package-lock.json в свою папку .gitignore. Нет необходимости фиксировать все эти файлы, если их легко восстановить.
  5. На любом другом компьютере, который вы хотите настроить, просто перейдите в свой 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 и пишите о них в блогах!

Пакеты прямо сейчас