Angular 2在npm安装后找不到模块

3
我有一个Angular 2应用程序,并尝试根据包的README中的说明安装其中的angular2-autosize组件(https://github.com/stevepapa/angular2-autosize)。我运行以下命令:
npm install angular2-autosize --save

操作完成。在“node_modules”目录中看到了“angular2-autosize”文件夹。
此外,已将依赖项添加到package.json中:"angular2-autosize": "^1.0.1"

现在,我打开app.module.ts文件并添加以下内容:

import { Autosize } from 'angular2-autosize';
@NgModule({
    declarations: [
    ..
    Autosize

请尝试使用ng build进行构建,但会失败并提示:

找不到模块“angular2-autosize”。

2个回答

6

我做了修改

import { Autosize } from 'angular2-autosize';

app.module.ts文件中,改为以下代码:

import { Autosize } from 'angular2-autosize/angular2-autosize';

然后它就可以正常工作啦 :)


如何处理“tsconfig.json中未包含相应文件”的错误? - Mojtaba

0

这个npm包存在很多问题(实际版本为1.0.1)。 事实上,这个包没有index.ts文件,所以你需要引用它所包含的文件。因此,在导入时需要指定该文件:

import { Autosize } from 'angular2-autosize/angular2-autosize';

其次,该包不包括捆绑的JavaScript文件,因此在编译应用程序时,编译器将想要在您自己的JavaScript文件中包含Autosize指令。您的JavaScript文件中应该看到类似于这样的内容(我知道它很丑):
System.register("../../node_modules/angular2-autosize/src/autosize.directive", ["@angular/core"], function (exports_67, context_67) {
...
});

但是可能在您的tsconfig.json文件中排除了node_modules目录,因此在这种情况下,您可能会遇到以下错误:

tsconfig.json文件中未包含相应的文件

在这种情况下,您可以尝试从tsconfig.json文件的排除条目中删除node_modules目录。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接