Hur man lägger till Angular 4 i en befintlig Node.js-applikation
Jag har en node.js-applikation som är konfigurerad för att använda TypeScript. Applikationen är tänkt att distribueras på Heroku. Node.js-applikationen är uppsatt som ett RESTful API för saker som autentisering, registrering och förfrågningar.
Jag skulle vilja veta vilka beroenden jag behöver lägga till för att börja bygga en Angular 4-applikation i samma projekt.
Jag såg ett problem på GitHub där rekommendationen var att använda ng init, men det är inte längre ett alternativ. ng new skapar en helt ny projektmapp istället för att lägga till beroenden och filer.
Det finns en annan fråga här där TS markerade sitt eget svar som korrekt, vilket i princip säger "använd meteor".
REDIGERA: Jag förstår hur man serverar en Angular 2+ applikation tillsammans från en node.js-app när man arbetar lokalt, bara bygg och servera index.ts-filen. Men hur kan jag ha Angular-utvecklingsfilerna sida vid sida med node.js-filer i git så att jag kan kompilera dem och distribuera dem tillsammans?
Svar #1
Jag hade samma fall, jag hade en parse-server på Heroku och ville gruppera den med Angular.
I min server.js-fil :
app.use(express.static(__dirname + '/dist'));
(Du behöver bara uttrycka)
Jag använder också internationalisering, så jag gjorde något snabbt (tidigt skede, snälla döm inte) :
app.get('/', function(req, res) {
let userLanguage = req.headers["accept-language"];
let langs = ['fr', 'en'];
let preferred = userLanguage.substr(0, 2).toLowerCase();
console.log('User\'s preferred language is ' + preferred.toUpperCase());
if (langs.indexOf(preferred) >= 0) { res.redirect(preferred); } else { res.redirect('/en'); }
});
Mina NG-kommandon:
"postinstall": "npm run build-i18n",
"i18n": "ng xi18n --output-path src/i18n --out-file messages.xlf",
"build-i18n:fr": "ng build --output-path=dist/fr --aot --prod --bh /fr/ --i18n-file=src/i18n/messages.fr.xlf --i18n-format=xlf --locale=fr",
"build-i18n:en": "ng build --output-path=dist/en --aot --prod --bh /en/ --i18n-file=src/i18n/messages.en.xlf --i18n-format=xlf --locale=en",
"build-i18n": "npm run build-i18n:en && npm run build-i18n:fr"
Mina appar är byggda i 2 mappar för de faktiska 2 språken, och användaren omdirigeras till någon av dem när han kommer till appen.
