我知道這非常簡單,但這是我第一次與nodejs
合作。如何構建一個Angular 2 + NodeJS Web App?
我有一個Angular 2
應用程序,並已安裝Angular CLI
與我的應用程序一起工作。
我可以通過運行ng build
成功構建客戶端。
因爲我已經加了server.js和服務器的文件夾(含API的路線),以我的應用程序的根目錄下運行nodejs
後端:
當前文件夾結構
我可以通過運行ng build
,然後運行node server
,與本地客戶端一起運行服務器端。
運行ng build
只生成客戶端並將其放入dist
文件夾以備部署,但我如何執行相同的server.js和server文件夾並將其添加到dist文件夾,以便客戶端可以與服務器進行通信?
那裏有很多工具,比如Grunt,Gulp Webpack和Browserify,但我不知道從哪裏開始。
我知道package.json
扮演我們的應用程序是如何配置的所以這裏是一個角色:
{
"name": "Portfolio",
"version": "0.0.0",
"license": "MIT",
"angular-cli": {},
"scripts": {
"build": "ng build && node server.js",
"ng": "ng",
"start": "ng serve",
"lint": "tslint \"src/**/*.ts\"",
"test": "ng test",
"pree2e": "webdriver-manager update --standalone false --gecko false",
"e2e": "protractor"
},
"private": true,
"dependencies": {
"@angular/common": "^2.4.8",
"@angular/compiler": "^2.4.8",
"@angular/core": "^2.4.8",
"@angular/forms": "^2.4.8",
"@angular/http": "^2.4.8",
"@angular/platform-browser": "^2.4.8",
"@angular/platform-browser-dynamic": "^2.4.8",
"@angular/router": "^3.4.8",
"angular2-google-maps": "^0.17.0",
"axios": "^0.15.3",
"body-parser": "^1.16.1",
"core-js": "^2.4.1",
"express": "^4.14.1",
"nodemailer": "^3.1.3",
"rxjs": "^5.2.0",
"ts-helpers": "^1.1.2",
"zone.js": "^0.7.7"
},
"devDependencies": {
"@angular/compiler-cli": "^2.4.8",
"@types/core-js": "^0.9.35",
"@types/jasmine": "2.5.43",
"@types/node": "^7.0.5",
"angular-cli": "1.0.0-beta.28.3",
"codelyzer": "~2.0.1",
"grunt": "^1.0.1",
"grunt-cli": "^1.2.0",
"grunt-contrib-concat": "^1.0.1",
"grunt-contrib-cssmin": "^2.0.0",
"grunt-contrib-jshint": "^1.1.0",
"grunt-contrib-uglify": "^2.1.0",
"grunt-contrib-watch": "^1.0.0",
"grunt-ts": "^6.0.0-beta.11",
"jasmine-core": "2.5.2",
"jasmine-spec-reporter": "3.2.0",
"karma": "1.5.0",
"karma-chrome-launcher": "^2.0.0",
"karma-cli": "^1.0.1",
"karma-jasmine": "^1.1.0",
"karma-remap-istanbul": "^0.6.0",
"protractor": "~5.1.1",
"ts-node": "2.1.0",
"tslint": "^4.4.2",
"typescript": "~2.2.1"
}
}
問題
- 如何建立我的服務器代碼,並將其捆綁到dist文件夾準備好部署?
- 實現此目的最常見的方法是什麼?
對不起,我的意思是'建立',因爲把服務器代碼連同客戶端一起放入dist文件夾 – ShadowCore