Създадох експресен проект за машинописyeoman и по всяко време пускам приложението, да получите грешките на ff: Не мога да намеря модул "morgan" Не може да се намери модул "анализатор на тялото" Не може да се намери модул „анализатор на бисквитки“
Но всички тези модули излизат в node_modulesдиректория, аз се огледах наоколо и единственото нещо, което можех да намеря, беше да стартирам npm връзка (име на модул) без скоби в корена на проекта, но все пак проблемът съществува, опитах npm да инсталирам в корен и грешката не изчезва . Също така инсталирах локално само тези липсващи модули и тя все още не работи.
Какво правя грешно.
Това е моят app.ts.
/// <reference path="./typings/tsd.d.ts"/>
/// <reference path="./typings/index.d.ts" />
import * as path from "path";
import * as logger from "morgan";
import * as express from "express";
import * as bodyparser from "body-parser";
import * as cookieParser from "cookie-parser"
// Import our application router class to handle routing.
import { ApplicationRouter } from "./routes/index";
// Module for the express application.
var app = express();
// Our express middleware.
app.use( logger("dev") );
app.use( bodyparser.json() );
app.use( bodyparser.urlencoded({ extended: false }) );
app.use( cookieParser() );
// Global application headers.
app.use( (req: express.Request, res: express.Response, next: Function) => {
res.header( "Access-Control-Allow-Origin", "*" );
res.header( "Access-Control-Allow-Method", "GET, POST, PUT, PATCH, DELETE, OPTIONS" );
res.header( "Access-Control-Allow-Header", "Origin, X-Requested-With, Content-Type, Accept" );
});
// Router Module
let appRouter = new ApplicationRouter();
// Application"s routes.
app.use( appRouter.getIndex() );
// Catch 404 and forward to error handler.
app.use( (req: express.Request, res: express.Response, next: Function) => {
var error: any = new Error("Not Found");
error.status = 404;
next( error );
});
// Development error handler will print stacktrace.
if ( app.get("env") === "development" ) {
app.use( (error: any, req: express.Request, res: express.Response, next: Function) => {
return res.status( error.status || 500 );
});
}
// Production error handler prints no stacktrace to user.
app.use( (error: any, req: express.Request, res: express.Response, next: Function) => {
return res.status( error.status || 500 );
});
module.exports = app;
Отговори:
0 за отговор № 1Typescript се нуждае от файловете за дефиниция, свързани с тези модули. Файловете обикновено се поддържат в общността и се предоставят на Определено типизиран сайт на Github
Тъй като typecript 2.0, е възможно да ги добавите към проекта с помощта на npm.
За да инсталирате тези за Morgan например, просто стартирайте
npm install @types/morgan
и така нататък за всеки модул
(избягвайте използването на /// <reference path=
мета-таг. Ако има нужда да направите достъпни файлове с дефиниции, които не са достъпни чрез npm - като например този, създаден от вас сами - просто използвайте tsconfig.json
файл и се уверете, че typings
директория не е изключена от компилационния път)