2016-09-22 25 views
6

Tôi muốn sử dụng lệnh js w/node js để trở thành máy chủ của tôi cho dự án góc 2. Tôi đã nhìn vào hướng dẫn để tích hợp js hiện w/cli góc (tôi theo sau thisthis) và tôi đã không có may mắn. Có ai có bất cứ đề nghị về làm thế nào để làm điều này? Hiện tại tôi có một dự án mới lên w/cli chỉ là một cái gì đó nói rằng "ứng dụng hoạt động!" và muốn thử làm điều đó bằng cách sử dụng nhanh như trái ngược với việc sử dụng máy chủ lite.

bất kỳ trợ giúp nào được đánh giá cao!Góc 2 cli với Express js

+0

'ng build' và đặt' Express JS' lưu trữ thư mục 'dist'. Tôi xin lỗi mà không có thông tin cụ thể hơn, tôi không thể giúp gì nhiều hơn thế. – shusson

+1

tôi đã thử rằng nó và nó chỉ hiển thị "tải ..." điều trong index.html. sao nó không tự động nạp các thành phần khác? – Armagetin

+0

mọi thứ trong bảng điều khiển trình duyệt? – shusson

Trả lời

6

này link phù hợp với tôi, nhưng có một số thay đổi.

tôi cài đặt góc-cli và tạo dự án mới, sau đó tôi làm theo hướng dẫn của liên kết nhưng với điều này thay đổi:

  1. tôi có thể tạo một thư mục có tên node_server
  2. Trong chạy NPM cài đặt --save nhanh trong thư mục gốc của dự án của tôi. Điều này thêm máy chủ như dependencie trong package.json của bạn mà không cần tạo mới trên node_server.
  3. Tôi tạo một tệp mới trong node_server được gọi là server.js, với máy chủ tốc độ cơ bản. Máy chủ này chỉ trả về index.html của thư mục dist.
  4. thêm các kịch bản để các package.json, các kịch bản đều giống nhau trong liên kết hướng dẫn, nhưng với một sự thay đổi, tên tập tin là server.js không index.js

Đây là tập tin server.js của tôi :

const express = require('express'); 
 

 
var app = express(); 
 
var staticRoot = __dirname; 
 

 
app.set('port', (process.env.PORT || 3000)); 
 

 
app.use(express.static(staticRoot)); 
 

 
app.get('/', function(req, res) { 
 
    res.sendFile('index.html'); 
 
}); 
 

 
app.listen(app.get('port'), function() { 
 
    console.log('app running on port', app.get('port')); 
 
});

tôi hy vọng làm việc này cho bạn.

1

Nhận xét ở trên hoạt động khá tốt đối với tôi, chỉ cần thực hiện một số điều chỉnh cho tập lệnh trong package.json được đề xuất trong liên kết đó.

"xây dựng: nodeserver": "ng xây dựng & & cp nodeserver/* dist",

"xây dựng: nodeserver-prod": "ng xây dựng -prod & & cp nodeserver/* quận "

"phục vụ-xây dựng": "NPM chạy build: nodeserver & & nodemon dist/index.js",

"phục vụ-xây dựng-sản":" NPM chạy build: nodeserver-prod & & nodemon dist /index.js"

Tôi có một thư mục có tên nút-server trong đó có nộp server.js của tôi như trên với các tuyến đường cho angular2 ứng dụng như trên, và một số tuyến api trong đó quá, và một số thư mục khác trong nút-máy chủ như mysql-yêu cầu và một số tập tin như config.json tập tin

+0

' cp node-server/* dist' là không cần thiết. Bạn cần chỉnh sửa tệp tsconfig.json của ứng dụng ng2 của bạn và thêm mục nhập 'outDir:' dist''. xây dựng sẽ biên dịch trực tiếp bên trong thư mục đó. Thay vào đó, nếu bạn có tệp cấu hình webpack, sẽ có một mục nhập 'output: {}'. – gyc

0

What I do create 2 folder on is your express server (I am using Express-generator) and 1 is Angular 2 project (Angular cli)

thư mục gốc

---> Máy chủ

---> ng4

---> gulpfile.js

gulp sẽ tạo ứng dụng của bạn và di chuyển tệp xây dựng

var gulp = require('gulp') 
var rename = require("gulp-rename"); 
var deletefile = require('gulp-delete-file'); 
var exec = require('child_process').exec; 
var runSequence = require('run-sequence'); 

gulp.task('build', function (cb) { 
    exec('cd ng4/ && ng build', function (err, stdout, stderr) { 
    cb(err); 
    }); 
}) 

gulp.task('rename',() => { 
    return gulp.src("./ng4/dist/index.html")   
     .pipe(rename("ng4.html")) 
     .pipe(gulp.dest("./server/views")); 
}) 

gulp.task('deletefile', function() { 
    var regexp = /\w*(\-\w{8}\.js){1}$|\w*(\-\w{8}\.html){1}$/; 
    gulp.src(['./server/public/index.html', 
      './ng4/dist/**/*.*']) 
    .pipe(deletefile({reg: regexp,deleteMatch: false})); 
}); 

gulp.task('move', function() { 
    return gulp.src(["./ng4/dist/**/*.*"])  
     .pipe(gulp.dest("./server/public")); 
}); 

gulp.task('default', function(callback) { 
    runSequence('build','rename','move','deletefile',callback)  
}); 

Bằng cách này, bạn có thể phát triển trong ứng dụng ng4 và chạy lệnh gulp trên root.

Các vấn đề liên quan