Не удается найти модуль после создания и добавления плагина в Nativescript

Используя последнюю версию Nativescript, я создал плагин согласно документации и после запуска tns plugin add ../nativescript-keychain получаю сообщение Successfully installed plugin nativescript-keychain.

Я также вижу, что он был добавлен в каталог node_modules моего приложения, но require("nativescript-keychain") не работает, так как я получаю сообщение об ошибке Cannot find module 'nativescript-keychain'

Мой плагин package.json выглядит как

{
  "name": "nativescript-keychain",
  "version": "0.0.1",
  "nativescript": {
    "platforms": {
      "ios": "2.2.1"
    }
  }
}

person dottodot    schedule 19.08.2016    source источник


Ответы (1)


Это может произойти по нескольким причинам; Было бы полезно, если бы вы предоставили репо, чтобы увидеть весь код.

  1. package.json не имеет ссылки на источник, обычно у вас есть main: "somefile" ключ.
  2. Вы сделали tns run ios --emulator после установки плагина, вам нужно перестроить приложение, прежде чем оно вступит в силу, плагины не могут быть синхронизированы через liveync ...
  3. Это код TypeScript или JavaScript, если это TypeScript, его необходимо перенести в JS, прежде чем вы сможете добавить его в свое демонстрационное приложение. TNS НЕ будет компилировать какой-либо код TS в подключаемых модулях. Плагины должны поставляться с окончательным кодом JS.
  4. Вам нужны вводы для TS, чтобы использовать автозаполнение и не выдавать предупреждения о доступных методах.
person Nathanael    schedule 19.08.2016
comment
Хорошо, это плагин, который я создал. github.com/dottodot/nativescript-keychain, и я пытаюсь добавить в Angular версию приложение как import * as keychain from 'nativescript-keychain'; - person dottodot; 20.08.2016
comment
Думаю, я понял почему. Поскольку я использую angular и машинописный текст, моему плагину требуется ввод текста для работы. - person dottodot; 20.08.2016
comment
Для TS вам действительно нужно вводить текст, чтобы плагин работал без каких-либо предупреждений или ошибок. В обычном JavaScript вам не нужно вводить текст, и плагин будет работать нормально. - person Nathanael; 10.03.2017