在Ionic 2应用程序中包含node-uuid包

时间:2016-10-17 12:05:55

标签: ionic2 node-uuid

我正在构建一个Ionic 2(RC0)应用程序,我正在尝试按node-uuid使用official documentation

我做完了:

$ 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的大多数资源建议使用typings 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 个答案:

答案 0 :(得分:2)

请注意,node-uuid为deprecated。他们与另一个项目合并,现在它只被称为uuid。一直到安装@types库的一切都是正确的。 (请注意,您必须使用'uuid'而不是'nod-uuid'重做这些步骤。

然而,

    console.log(uuid.v4);

不会生成ID。根据文档,您需要在导入中指定要使用的uuid版本,然后将变量作为方法调用:uuid();

  

来自docs: [弃用警告:不推荐使用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后,您应该会看到记录到控制台的ID。 id的格式将根据您使用的版本而有所不同:

版本1(时间戳):我的例子。

版本3(命名空间)

第4版(随机) 等...

快乐的编码!

答案 1 :(得分:0)

你可以试试:(angular2-uuid

npm install angular2-uuid --save

...

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

它适用于角度2&离子2