Включение пакета node-uuid в приложение Ionic 2

Я создаю приложение Ionic 2 (RC0) и пытаюсь использовать node-uuid, следуя официальной документации.

Я сделал:

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

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

import uuid from 'node-uuid';

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

console.log(uuid.v4);

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

TypeError: des$3 is undefined

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


Большинство ресурсов для Angular 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`
******************************************************

2 ответа

Обратите внимание, что node-uuid устарел. Они слились с другим проектом, и теперь он называется только uuid. Все до момента установки библиотеки @types правильно. (обратите внимание, что вам придется повторить эти шаги, используя только 'uuid', а не 'nod-uuid')

Тем не мение,

    console.log(uuid.v4);

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

Из документации: [Предупреждение об устаревании: использование require('uuid') устарело и не будет поддерживаться после версии 3.x этого модуля. Вместо этого используйте require('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 (отметка времени): мой пример.

Версия 3 (пространство имен)

Версия 4 (случайная) и т. Д...

Удачного кодирования!

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

npm install angular2-uuid --save

......

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

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

Другие вопросы по тегам