我正在启动Angular2应用程序,并且我使用express和Angular CLI 1.0.0-beta.25.5设置我的服务器
在这种文件结构中:
project root
|-server
|-server.ts
|-src
|-app
当我运行nodemon server.ts
我收到以下错误:
import
正在app
的其他地方工作,所以我不确定问题是什么。我也没有得到任何vs代码错误,以表明任何东西导入错误。同时express
和body-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
答案 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