我正在尝试在开发模式下运行一个构建在Angular-Universal-Starter包之上的应用程序。
我们的想法是有一个NodeJS Express服务器 - 用于API,Angular 6用于前端。
我的Angular package.json文件包含以下内容:
"scripts": {
"ng": "ng",
"start": "ng serve && node server.js",
"build": "ng build",
"test": "ng test",
"lint": "tslint ./src/**/*.ts -t verbose",
"e2e": "ng e2e",
"build:ssr": "npm run build:client-and-server-bundles && npm run
webpack:server",
"serve:ssr": "node dist/server.js",
"build:client-and-server-bundles": "ng build --prod && ng run angular.io-
example:server",
"webpack:server": "webpack --config webpack.server.config.js --progress --
colors"
},
当我尝试做:node server.js时,我收到一个错误:
import 'zone.js/dist/zone-node';
^^^^^^
SyntaxError: Unexpected token import
在server.js的最后我有:
// Start up the Node server
app.listen(PORT, () => {
require("./server/data/insertData")(db);
console.log(`Node server listening on http://localhost:${PORT}`);
});
但是我从来没有收到过这条消息(节点服务器正在监听......),这很奇怪。
有可能以某种方式启动节点服务器并使用Postman来定位它吗?我真的尝试了所有命令......
Nodejs使用require语法而不是ES6 import,因为它不像babel那样编译为angular。
所以你应该使用:
require('zone.js/dist/zone-node.js');
或者如果您想尝试nodejs exprimental modules,请按以下方式启动脚本:
node --experimental-modules my-app.mjs