Angular2 CLI Express server.ts中出现意外的令牌导入

时间:2017-01-19 22:36:05

标签: angular express typescript angular-cli

我正在启动Angular2应用程序,并且我使用express和Angular CLI 1.0.0-beta.25.5设置我的服务器

在这种文件结构中:

project root
|-server
  |-server.ts
|-src
  |-app

当我运行nodemon server.ts

我收到以下错误:

enter image description here

import正在app的其他地方工作,所以我不确定问题是什么。我也没有得到任何vs代码错误,以表明任何东西导入错误。同时expressbody-parser npm install --save以及@types/express--save-dev)也是import * as express from 'express'; import {Application} from 'express'; import {apiFoods} from './api/apiFoods'; const bodyParser = require('body-parser'); const app: Application = express(); app.use(bodyParser.json()); apiFoods(app); app.listen(8090, () => { console.log('Server is now running on port 8090 ...'); }); 什么阻止此导入声明表单正常工作?如何更正此问题?

server.ts

java.util.Map

2 个答案:

答案 0 :(得分:3)

将节点更新到7.x以获得本机es6支持或者像这样使用带有nodemon的babel-node;

nodemon -w --exec "babel-node server.ts"

您还可以通过在-w之后添加文件夹名称来指定要监视更改的文件夹,例如-w server

要让babel-node工作,您必须安装babel-preset-es2015

npm install --save-dev babel-preset-es2015

并在package.json文件旁边创建一个名为.babelrc的文件,其中包含以下内容

{
  "presets": ["es2015"]
}

答案 1 :(得分:2)

这里的根本问题是import语句是节点无法识别的ES6命令。我发现使用ts-node首先转换我的打字稿然后运行它的解决方案。

npm install --save-dev ts-node

然后添加新脚本以在package.json

中使用它

<强>的package.json

"scripts":{
  "api-server": "./node_modules/.bin/ts-node ./server/server.ts"
}

如果要执行run:

npm run api-server

要使用nodemon进行观看,请执行(taken from this answer):

nodemon --watch 'src/**/*.ts' --ignore 'src/**/*.spec.ts' --exec './node_modules/.bin/ts-node' server/server.ts