Включение пакета 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