這涉及到這個問題here這一個here但那些都適合我的需要。加載第三方庫角CLI
我在遷移的Angular2應用到angular-cli
結構,我想包括.OBJLoader
& .MTLLoader
爲threejs
庫在我移植的項目。
我已經包括從threejs
節點文件夾中的腳本在我.angular-cli.json
文件是這樣的:
"styles": [
"styles.css"
],
"scripts": [
"../node_modules/three/examples/js/loaders/OBJLoader.js",
"../node_modules/three/examples/js/loaders/MTLLoader.js"
],
"environmentSource": "environments/environment.ts",
"environments": {
"dev": "environments/environment.ts",
"prod": "environments/environment.prod.ts"
}
因爲.OBJLoader
& .MTLLoader
沒有分型我想我不得不創建它們自己在typings.d.ts
文件:
/* SystemJS module definition */
declare var module: NodeModule;
interface NodeModule {
id: string;
}
// OBJLoader
declare var objloader: OBJLoader;
interface OBJLoader {
}
// MTLLoader
declare var mtlloader: MTLLoader;
interface MTLLoader {
}
然後我試圖將模塊導入到服務需要我在他們這樣的:
import { Injectable } from '@angular/core';
import * as THREE from 'three';
import * as OBJLoader from 'OBJLoader';
import * as MTLLoader from 'MTLLoader';
@Injectable()
export class LoaderService {
constructor() {}
setupMTLLoader(appPath) {
var mtlLoader = new MTLLoader();
return mtlLoader;
}
setupObjLoader(materials, appPath) {
var objLoader = new OBJLoader();
return objLoader;
}
}
但angular-cli
抱怨說:
Module not found: Error: Can't resolve 'OBJLoader' in '/my-path/src/app/shared/services'
@ ./src/app/shared/services/loader.service.ts 12:0-39
幾個問題在這裏:
- 什麼我需要改變,以得到這個工作?
- Typings文件夾是否檢查
node_nodules
中@types
文件夾的聲明類型? - 腳本如何在腳本中加載並使其可用?
我很困惑在這裏做什麼。
嘿,那裏,只是好奇,如果你使用此功能遷移到Angular v5.xx時會遇到任何問題 –