2016-10-17 2 views
0

Я создаю приложение Ionic 2 (RC0), и я пытаюсь использовать node-uuid, следуя official documentation.Включая пакет node-uuid в приложении Ionic 2

Я сделал:

$ npm install --save node-uuid 
$ npm install --save @types/node-uuid 

узла UUID, похоже, использует подход экспорта по умолчанию, так что я импортировать его в моем файле транскрипта, как это:

import uuid from 'node-uuid'; 

И используя она выглядит следующим образом:

console.log(uuid.v4); 

Однако, мое приложение не появляется, и я вижу эту ошибку в журналах:

TypeError: des$3 is undefined 

Что мне не хватает?


Большинство ресурсов для угловых 2 рекомендуется использовать типизации CLI для установки определений типа, но это не имеет никакого значения для меня. Я пробовал:

$ npm install --global typings 
$ typings install --save node-uuid 

$ ionic info 

Your system information: 

Cordova CLI: You have been opted out of telemetry. To change this, run: cordova telemetry on. 
6.3.1 

Ionic Framework Version: 2.0.0-rc.0 
Ionic CLI Version: 2.1.0 
Ionic App Lib Version: 2.1.0-beta.1 
OS: Distributor ID: Ubuntu Description: Ubuntu 16.04.1 LTS 
Node Version: v6.6.0 

****************************************************** 
Dependency warning - for the CLI to run correctly,  
it is highly recommended to install/upgrade the following:  
Please install your Cordova CLI to version >=4.2.0 `npm install -g cordova` 
****************************************************** 
+0

https://ionicframework.com/docs/v2/native/device/ –

+0

Ионные Native устройства имеют проблемы с Android, поскольку он не возвращает RFC 4122 UUID URN пространство имен – Francesco

ответ

0

вы можете попробовать это: (angular2-uuid)

npm install angular2-uuid --save 

......

import { UUID } from 'angular2-uuid'; 
... 
let uuid = UUID.UUID(); 

работает на угловой 2 & ионный 2

+0

Остерегайтесь использования этого пакета! Он не соответствует требованиям RFC4122. https://github.com/wulfsolter/angular2-uuid/issues/10 –

+0

@NieldeWet Хорошо, спасибо. –

2

Обратите внимание: узел-uuid равен deprecated. Они слились с другим проектом, и теперь его называют только uuid. Все, что нужно для установки библиотеки @types, является правильным. (Обратите внимание, что вам придется повторить эти шаги, используя только «UUID» не «поклон-UUID»)

Однако

console.log(uuid.v4); 

не генерирует идентификатор. В соответствии с документацией вам нужно указать в своем импортировании, какую версию uuid вы хотите использовать, а затем вызывать свою переменную как метод: uuid();

Из документации: [предупреждение устаревания: использование требует («UUID») является устаревшим и не будет поддерживаться после версии 3.х этого модуля. Вместо этого, использование требует ('UUID/[v1 | v3 | v4 | v5]'), как показано в примерах ниже]

Вот пример кода с использованием UUID/v1:.

import { Component } from '@angular/core'; 
    import uuid from 'uuid/v1'; //here change 'v1' with the version you desire to use 

    @Component({ 
    selector: "page-uuid", 
    templateUrl: "uuid.html" 
    }) 

    export class uuidTestPage { 
    id = uuid(); 

    constructor() { 
     console.log(this.id); // outputs id. For example: 298da400-1267-11e8-a6e5-3148ee6706e9 
    } 
    } 

После того, как вы выполните свое приложение и введите uuidTestPage, вы увидите, что идентификатор зарегистрирован на консоли. Формат идентификатора будет зависеть от используемой вами версии:

Версия 1 (временная метка): мой пример.

Version 3 (имен)

Version 4 (случайный) и т.д ...

Счастливый кодирования!

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