我有这个tsconfig.json
{
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"moduleResolution": "node",
"sourceMap": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"removeComments": false,
"noImplicitAny": false,
"outDir": "dist"
},
"exclude": [
"node_modules"
]
}用dashboard.component.ts
import { Component, OnInit } from '@angular/core';
import Logger = require('le_node');
var log = new Logger({
token:'abcdef-1234-ghijklm-5678-nopqrstuvwxyz'
});
@Component({
selector: 'dashboard',
templateUrl: 'app/dashboard.component.html'
})
export class DashboardComponent implements OnInit {
constructor() { }
ngOnInit(): void {
log.log('Test LogEntries...');
}
}并运行npm install le_node --save来安装LogEntries。当尝试使用npm start,运行应用程序时,我会得到以下错误:
> sample-app@2.0.0 start /Users/user/Workspace/sample-app
> tsc && concurrently "tsc -w" "lite-server"
app/dashboard.component.ts(10,25): error TS2307: Cannot find module 'le_node'.发布于 2016-10-05 04:21:15
错误TS2307:找不到模块'le_node‘。
您只安装了模块,没有安装它的类型定义。如果模块不是用TypeScript编写的(例如,角),则需要从外部获取它的类型。这就是.d.ts文件的用途。
修复
在文件globals.d.ts中快速修正:
declare module "le_node";更多
覆盖于此:https://basarat.gitbooks.io/typescript/content/docs/types/migrating.html
发布于 2017-04-01 09:11:40
一个对我有用的解决方案就是不要使用le_node模块,因为它对浏览器不友好。并使用日志条目REST
@Injectable()
export class LoggerService {
constructor(private http: Http) {
}
public log(level: string, name: string) {
// https://docs.logentries.com/docs/http-post
const LOGENTRIES_URL = "https://webhook.logentries.com/noformat/logs/";
let headers = new Headers();
headers.append("Content-Type", 'application/json');
let requestoptions = new RequestOptions({
method: RequestMethod.Post,
headers: headers,
body: JSON.stringify({ "level": level, "message": message })
});
this.http.request(LOGENTRIES_URL + YOUR_LE_TOKEN, requestoptions).toPromise().catch((error) => {
console.log("faield to send log to the logentries server");
});
}
}https://stackoverflow.com/questions/39861593
复制相似问题