在使用Visual Code的我们的打字稿2.3.4项目(ionic2& angular 4)中,我们正在整合第三方“3D-Carousel”。我们收到以下错误:
打字稿错误 无法写入文件'/projectfolder/src/assets/js/3d-carousel/FWDUltimate3DCarousel.js',因为它会覆盖输入文件。
打字稿错误 无法写入文件'/projectfolder/src/assets/js/3d-carousel/init-3dcarousel.js',因为它会覆盖输入文件。
以下是组件代码:
import { Component, ElementRef, NgZone } from '@angular/core';
import { Events } from 'ionic-angular';
import '../../../assets/js/3d-carousel/FWDUltimate3DCarousel.js';
import carousel3d from '../../../assets/js/3d-carousel/init-3dcarousel.js';
@Component({
selector: 'command-3d-Carousel',
templateUrl: 'Cmd3dCarouselWidget.html'
})
export class Cmd3dCarouselWidget {
constructor(public events: Events, private el: ElementRef, private zone: NgZone) {
}
ngAfterViewInit() {
this.zone.runOutsideAngular(() => {
carousel3d(this.el.nativeElement);
});
}
}
已检查所有建议,例如制作“allowJs”:true,不包括tsconfig.json文件中的轮播Js文件。更新打字稿版本等问题仍然存在。
构建过程有时完成&应用程序运行(很少偶尔),但大多数情况下应用程序因上述错误而崩溃(即构建过程在“transpile started”时失败)。
我能做些什么来修复它?提前致谢!!
答案 0 :(得分:0)
我们确实设法解决了这个问题。实际上我们称第三方图书馆的方式是错误的。以下是要修复的问题所需的代码:
<强> MyWidget.ts 强>
import { Component, ElementRef, NgZone } from '@angular/core';
import { Events } from 'ionic-angular';
declare var carouselComponent: any;
@Component({
selector: 'command-3d-Carousel',
templateUrl: 'Cmd3dCarouselWidget.html'
})
export class Cmd3dCarouselWidget {
constructor(public events: Events, private el: ElementRef, private zone: NgZone) {
}
ngAfterViewInit() {
this.zone.runOutsideAngular(() => {
carouselComponent(this.el.nativeElement);
});
}
}
<强> INIT-3dcarousel.js 强>
var carouselComponent = function carousel3d(ele) {
carousel = new FWDUltimate3DCarousel({
//required settings
carouselHolderDivId: "myDiv",
carouselDataListDivId: "carouselData",
displayType: "fluidwidth",
autoScale: "yes",
carouselWidth: 940,
carouselHeight: 538,
...
...
}
<强>的index.html 强>
<!-- Third party scripts for 3D Carousel -->
<script src="assets/js/FWDUltimate3DCarousel.js"></script>
<script src="assets/js/init-3dcarousel.js"></script>
我们观察到外部js文件没有被typescript正确编译,因为我们在离子应用程序中使用错误的方法来使用第三方lib。