嗨,我正在使用角度 4 开发一个平均应用程序。我使用了角度 cli 配置。我想使用监视模式自动生成代码,并且还想在任何文件更改时重新启动节点服务器。
我使用了以下命令,但不起作用
script: {
"server": "ng build -w && nodemon --watch src/**/*.ts --exec ts-node ./bin/www"
}
我已将配置保存在从其他地方导入server.ts
的目录bin/www
文件中。
上述命令的问题是,ng cli 正在启用监视的情况下构建代码,但 nodemon 没有启动。
所以我尝试了以下方法。 但它的构建只有一次作为监视未为 CLI 启用。
script: {
"server": "ng build && nodemon --watch src/**/*.ts --exec ts-node ./bin/www"
}
节点监视在这两种情况下都不起作用。
根据上面的评论,这就是我使 2 台服务器工作并响应任何更改的方式。
- 使用Angular-cli工具创建Angular 2应用程序,前端服务器
- 在此应用程序的根目录中创建服务器.js文件,后端服务器,Express应用程序的示例在这里
- 安装软件包 npm-run-all 以同时启动 2 台服务器
- 在应用的根目录中创建文件服务器.conf.json,其中包含以下内容
{ "/api": { "target": "http://localhost:3000", "secure": false } }
- 修改 package.json 以包含此部分
"scripts": { "client": "ng serve --proxy-config server.conf.json", "server": "nodemon server.js", "start": "npm-run-all -p client server" }
- 运行"npm 启动">
现在ng serve正在观察Angular和nodemon - 在Node中的任何变化。
localhost:4200 // ng serve => angular
localhost:4200/page // ng serve => angular
localhost:4200/another/page // ng serve => angular
localhost:4200/api // ng serve => node
localhost:4200/api/users // ng serve => node
localhost:3000/api // node
localhost:3000/api/users // node
package.json
"scripts": {
"start": "concurrently --kill-others "npm run server:run" "npm run server" "ng serve --aot --progress=false --proxy-config proxy.conf.json"",
"lint:client": "ng lint",
"lint:server": "tslint './server/**/*.ts' -c ./server/tslint.json --fix",
"test:client": "ng test --watch false",
"e2e:client": "ng e2e",
"build": "ng build --prod --sm=false --aot --output-path=dist && npm run server:build",
"server:run": "nodemon",
"server": "node server.js",
"server:build": "tsc -p ./server",
"postinstall": "npm run build",
"build:prod":"ng build --prod --sm=false --aot --output-path=dist"
}
proxy.conf.json
{
"/api/*": { // need to change api with your specific name appropriate to your http
"target": "http://localhost:3000",
"secure": false
}
}
然后执行 npm start 或 npm 运行启动