使用javascript-stringify库

时间:2018-02-20 17:37:38

标签: angular5 stringify typescript-2.5

我想在我的角度项目(或同等的库)中使用javascript-stringify,但到目前为止我没有尝试过的任何东西似乎都有效。我已经阅读过像我这样的一些类似的问题,但解决方案却让我无所适从。

当我这样做时:

import * as javascriptStringify from 'javascript-stringify';

我看到以下错误:

  

错误   SRC /应用/勘探/前景接合/前景-engagement.component.ts(27,13):   错误TS6133:'javascriptStringify'已声明但从未使用过。

     

的src /应用程序/勘探/前景接合/前景-engagement.component.ts(27,38):   错误TS2497:模块   '“node_modules / javascript-stringify / javascript-stringify”'解析为   非模块实体,无法使用此构造导入。

当我这样做时:

import stringify from 'javascript-stringify';   

我看到以下错误:

  

错误   SRC /应用/勘探/前景接合/前景-engagement.component.ts(27,8):   错误TS1192:模块'“node_modules / javascript-stringify / javascript-stringify”'   没有默认导出。

     

的src /应用程序/勘探/前景接合/前景-engagement.component.ts(27,8):   错误TS6133:声明'stringify'但从未使用过。

这是ng --version的输出:

$ ng --version
Your global Angular CLI version (1.5.4) is greater than your local
version (1.5.0). The local Angular CLI version is used.

To disable this warning use "ng set --global warnings.versionMismatch=false".

    _                      _                 ____ _     ___
   / \   _ __   __ _ _   _| | __ _ _ __     / ___| |   |_ _|
  / △ \ | '_ \ / _` | | | | |/ _` | '__|   | |   | |    | |
 / ___ \| | | | (_| | |_| | | (_| | |      | |___| |___ | |
/_/   \_\_| |_|\__, |\__,_|_|\__,_|_|       \____|_____|___|
               |___/

Angular CLI: 1.5.0
Node: 8.9.1
OS: darwin x64
Angular: 5.0.3
... animations, common, compiler, compiler-cli, core, forms
... http, language-service, platform-browser
... platform-browser-dynamic, router

@angular/cli: 1.5.0
@angular-devkit/build-optimizer: 0.0.34
@angular-devkit/core: 0.0.22
@angular-devkit/schematics: 0.0.38
@ngtools/json-schema: 1.1.0
@ngtools/webpack: 1.8.0
@schematics/angular: 0.1.8
typescript: 2.5.3
webpack: 3.8.1

有人可以告诉我使用这个库的方法吗?或者指向另一个提供相同功能的库?

更新

我发现如果我将文件node_modules/javascript-stringify/javascript-stringify.d.tsexport = stringify;更改为export default stringify;,那么import stringify from 'javascript-stringify';将按预期工作。

但是,node_modules下的代码可能会发生变化,并且在运行npm install时在Docker中构建时肯定会丢失我的更改。这是前进的最佳方式吗?如果是这样,将更改永久化的最佳方法是什么?

1 个答案:

答案 0 :(得分:0)

我从未让npm模块javascript-stringify工作,但我能够将它移植为Angular 5 / Typescript服务,它可以正常工作。原始模块是MIT许可证,下面是我的移植代码:

192.168.0.113