如何在typescript(Angular2)中使用第三方npm模块

如何在typescript(Angular2)中使用第三方npm模块,angular,webkit,Angular,Webkit,是否有任何文档或分步指南来描述如何做到这一点 我想举一个例子:我试图在angular应用程序中使用该软件包。我创建了一个新应用程序: ng new ng-ss-test cd ng-ss-test npm install --save simpl-schema 在app.component.ts中,我添加了: let SimpleSchema = require('simpl-schema').default; 现在我得到了错误: ERROR /app/app.component.ts (2

是否有任何文档或分步指南来描述如何做到这一点

我想举一个例子:我试图在angular应用程序中使用该软件包。我创建了一个新应用程序:

ng new ng-ss-test
cd ng-ss-test
npm install --save simpl-schema
在app.component.ts中,我添加了:

let SimpleSchema = require('simpl-schema').default;
现在我得到了错误:

ERROR /app/app.component.ts (2,20): Cannot find name 'require'.)
因此,我宣布要求:

declare var require: any
好的,这确实有效。我能写像这样的东西

const schema = new SimpleSchema({
但我认为这不是解决问题的办法。我仍然收到警告:

WARNING in ./~/handlebars/lib/index.js
require.extensions is not supported by webpack. Use a loader instead.
 @ ./~/message-box/dist/MessageBox.js 13:18-39
 @ ./~/simpl-schema/dist/SimpleSchema.js
 @ ./~/simpl-schema/dist/main.js
 @ ./src/app/app.component.ts
 @ ./src/app/app.module.ts
 @ ./src/main.ts
 @ multi webpack-dev-server/client?http://localhost:4200 ./src/main.ts
当然,我可以通过运行

dts-gen -m simpl-schema

但是我仍然需要
require
行,对吗?我想知道在angular中使用第三方npm模块的正确方法是什么。

为了使用第三方模块,您需要一个定义类型脚本。每个模块都附带一个typescript d.ts文件,该文件定义了可以在库中使用的方法。但是,该文件未包含任何内容,因此您需要编写自己的d.ts文件或在此处检查DefiniteTyped的回购:


只需将d.ts文件添加到项目中,您就可以使用库了

Angular CLI提供了关于添加第三方LIB OK的文档,这给了我与使用
require
相同的结果。关于
require.extensions
的警告来自
siml schema
模块,因此必须在那里进行修复。我想知道webpack如何知道它必须从
node\u modules/siml schema
目录导入哪些文件。