Vue.js

(Vue.js) node.js (express) 서버에 배포

danune.dev 2022. 6. 17. 14:52

Vue.js로 작업한 프론트엔드 작업물을 node.js express 에 배포하는 방법입니다

아래와 같은 구조로 작업한 상태라고 가정합니다

디렉토리 구조가 다르다면 ouptutDir등을 적절히 입력하면 됩니다

$ tree -L 1
.
├── front
└── server
  • front: Vue.js 프론트엔드
  • server: Node.js express 백엔드

 

1. 배포 위치 수정 

- vue.config.js 수정 

const path = require('path')

module.exports = defineConfig({
	// ...
    outputDir: path.resolve('../server/public'),
    // ...
})

2. 배포 

npm run build

위 명령어를 수행하면 프론트를 구성하는 파일들이 ../server/public 위치에 배포됩니다

 

3. 서버 코드 수정

- routes/index.js 수정 ('/' 접근에 대한 응답을 front에서 배포한 페이지로 연결)

var express = require('express');
var router = express.Router();
var path = require('path')

router.get('/', function(req, res, next) {
    res.sendFile(path.join(__dirname, '../public/index.html'));
});

module.exports = router;

 

4. server 재실행

num start

서버 재실행 후 서버 주소로 접속했을 때 배포한 화면이 나오면 성공입니다