2017-01-11 4 views
0

Я пытаюсь создать плагин пользовательского интерфейса в машинописномСоздания NativeScript плагина пользовательского интерфейса с машинописью

Вот шаги, которые я везу

  1. создать проект плагина в локальной папке
  2. записи .ts файлов для пользовательского интерфейса в корневом каталоге проекта плагина
  3. генерировать .js файлы из этих .ts файлов с tsc команды в корне плагина проекта
  4. перейти к TES проект т NativeScript и запустить tns plugin add <local plugin path> включить созданный плагин

Но я получаю ошибку компиляции на шаге 3, потому что у меня есть импортирующие заявления следующего

import { ContentView } from "ui/content-view"; 
 
import...

Я ссылаюсь примером здесь https://github.com/NathanWalker/nativescript-cardview/blob/master/cardview.ios.ts

Мой вопрос в том, как cardview.ios.ts в примере 'nativescript-cardview' является компилируется в cardview.io.js? Кажется невозможным сделать это ...

ответ

0

В плагине вы указали, что автор создал демонстрационное приложение и использует файл декларации для tns-core-модулей из этой демонстрации. Посмотрите at this line где ТНС-CORE-modules.d.ts входит в tsconfig.json

Вы можете следовать этой практике для случаев тестирования и для вашего освобождения, вы можете создать относительный путь к tns- core-modules (и ссылки) файлы декларации из папки приложения node_modules, как сделано here

В качестве дополнительного примечания флаг noEmiOnError в вашем пакете.json позволит продолжить перевод без зависания ошибок.

+0

Я не был знаком с файлами ссылок в проекте машинописи, спасибо за ответ. это очень помогло! –

0

Спасибо, что обратились к вашему репо. NativeScript's docs утверждают, что «если вы используете транспилятор, убедитесь, что вы включили переписанные файлы JavaScript в свой плагин».

Ваш пакет package.json указывает cardview.js в качестве точки входа, но ваши переписанные файлы JavaScript не были добавлены в репо. Я решил эту проблему в своем nativescript-midi plugin, передав переданные файлы в каталог \ dist. Плагин написан на ES 6, но передается в ES 5 для потребления. Чтобы убедиться, что каталоги src и dist остаются в синхронизации, я использую git pre-commit hook, который автоматически запускает команду сборки и фиксирует результаты. Если вы клонируете репортаж nativescript-midi, вы можете просмотреть его в .git/hooks/pre-commit. Преимущество использования этого подхода для вашего плагина заключается в том, что он также позволит использовать его разработчиками, которые не используют TypeScript.

Смежные вопросы