2015-12-08 62 views
2

我对Visual Studio Code很陌生,已经从Visual Studio 2015横向移动。找不到模块'express';找不到名称'process';等等

我正在使用webpack在VSC中编写我的第一个nodejs/Angular 2失败。 Express-Generator提供的示例应用程序可以起到一定的作用,但现在我正在继续编写自己的代码,主要是使用TypeScript。

我有这样的代码在app.ts:

import * as express from 'express'; 
import * as http from 'http'; 
import * as path from 'path'; 

var controllers = require('./controllers'); 
var app = express(); 

app.set('port', process.env.PORT || 80); 
app.set('views', path.join(__dirname, 'views')); 
app.set('view engine', 'vash'); 
app.use(express.favicon()); 
app.use(express.logger('dev')); 
app.use(express.json()); 
app.use(express.urlencoded()); 
app.use(express.methodOverride()); 
app.use(app.router); 
app.use(express.static(path.join(__dirname, 'public'))); 

// map the routes 
controllers.init(app); 

// development only 
if ('development' === app.get('env')) { 
    app.use(express.errorHandler()); 
} 

// set up server 
http.createServer(app).listen(app.get('port'),() => { 
    console.log(`Express server listening on port ${app.get('port') }`); 
}); 

webpack.config.js:

var webpack = require('webpack'), 
path = require('path'); 

var app = __dirname; 

module.exports = { 
    context: app, 
    entry: { 
     app: ['webpack/hot/dev-server', './app.ts'] 
    }, 
    resolve: { 
     extensions: ['', '.webpack.js', '.web.js', '.ts', '.tsx', '.js'] 
    }, 
    output: { 
     path: app, 
     filename: "bundle.js" 
    }, 
    module: { 
     loaders: [ 
      { test: /\.css$/, loader: "style!css" }, 
      { test: /\.ts(x?)$/, loader: 'babel-loader!ts-loader' } 
     ] 
    }, 
    plugins: [ 
     new webpack.HotModuleReplacementPlugin() 
    ] 
}; 

tsconfig.json:

{ 
    "compilerOptions": { 
     "target": "ES6" 
    }, 
    "files": [ 
     "app.ts" 
    ] 
} 

我有一些问题由VSC提出。在我的.ts的第一行,“无法找到模块'express'。”现在我已经运行了“npm intall express -g”,甚至是“npm install express”,所以我不知道它为什么在抱怨。按预期方式,node_module文件夹包含一个快速文件夹。

此外,我的“过程”产生令人愉快的“无法找到名称”过程“。”,就像我的“__dirname”一样。

所有这些让我觉得nodejs配置不正确。

任何人都可以帮助解决这些问题吗?我会在别处寻找答案,但我不知道要去哪里看,也不知道该怎么办!

+0

您是否安装了类型定义? – Antiga

+0

nodejs的类型定义?是。 – serlingpa

+0

和Express?... – Antiga

回答

-2

您可能没有显示所有的代码,但我看不到任何地方:

var express = require('express') 
+0

'import'从'express'表示;'我明白了吗? – Antiga

+0

对不起,我不熟悉TypeScript,不知道这个约定。我现在查了它。我刚开始自己​​学习nodejs,所以建议我的教程指出。 –

+1

没问题。你应该知道;但是,这不是TypeScript语法。这是新的JavaScript语法。具体来说,这是ES2015模块语法。 – Antiga

0

找到了!丢失:

/// <reference path="typings/express/express.d.ts" /> 

简单。

+0

如果它很有帮助,现在可以在tsconfig.json中包含该文件,如果它更容易。 – Antiga