我想在我的角度项目(或同等的库)中使用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.ts
从export = stringify;
更改为export default stringify;
,那么import stringify from 'javascript-stringify';
将按预期工作。
但是,node_modules下的代码可能会发生变化,并且在运行npm install
时在Docker中构建时肯定会丢失我的更改。这是前进的最佳方式吗?如果是这样,将更改永久化的最佳方法是什么?
答案 0 :(得分:0)
我从未让npm模块javascript-stringify工作,但我能够将它移植为Angular 5 / Typescript服务,它可以正常工作。原始模块是MIT许可证,下面是我的移植代码:
192.168.0.113