developer tip

gruntjs 서버 작업의 목적은 무엇입니까?

optionbox 2020. 11. 30. 08:05
반응형

gruntjs 서버 작업의 목적은 무엇입니까?


나는 gruntjs 사용을 추진하는 방법을 배우고 있습니다. 서버 작업을 찾았 지만 요점을 알 수 없습니다.

웹 서버 루트에서 소스 파일을 이동하거나 배치하지 않고 연결 / 축소 된 파일을 사용하여 애플리케이션을 테스트 할 수 있습니까 (backbone.js 사용)? 예를 들어 아파치가 없습니다.

그렇지 않다면 서버 작업을 어떻게 사용합니까?


server작업은 base웹 루트로 설정된 경로 로 정적 서버를 시작하는 데 사용됩니다 .

예 : 봉사 ./web-roothttp://localhost:8080/:

grunt.initConfig({
  server: {
    port: 8080,
    base: './web-root'
  }
});

Apache 서버와 유사하게 작동하여 경로에 따라 정적 파일을 제공하지만 연결통해 http 모듈사용 하여 설정합니다 ( source ).

정적 파일 이상을 제공하는 데 필요한 경우 사용자 지정 server작업을 정의하는 것이 좋습니다 .

grunt.registerTask('server', 'Start a custom web server.', function() {
  grunt.log.writeln('Starting web server on port 1234.');
  require('./server.js').listen(1234);
});

그리고 사용자 정의 서버 인스턴스 :

// server.js
var http = require('http');
module.exports = http.createServer(function (req, res) {
    // ...
});

서버 작업 매핑 연결 / 축소 된 파일을 사용하여 내 응용 프로그램을 테스트 할 수 있습니까? [...]

연결 및 축소를 자신의 전용 작업이 - concatmin-하지만 함께 사용할 수있는 server3를 달성하기 위해 작업.


편집하다

잠시 동안 서버를 유지하려면 (그리고 grunt도 함께) 작업을 비동기로 정의 할 수 있습니다 (서버의 'close'이벤트 사용 ) :

grunt.registerTask('server', 'Start a custom web server.', function() {
  var done = this.async();
  grunt.log.writeln('Starting web server on port 1234.');
  require('./server.js').listen(1234).on('close', done);
});

이제 server작업이 connect작업이며 grunt-contrib-connect패키지에 포함 됩니다.

connect작업은 연결 웹 서버를 시작합니다.

다음 명령으로이 플러그인을 설치하십시오.

npm install grunt-contrib-connect --save-dev

참고 : --save-dev귀하의 패키지를 포함 devDependencies, 참조 https://npmjs.org/doc/install.html을

플러그인이 설치되면 다음 JavaScript 줄을 사용하여 Gruntfile 내에서 활성화 할 수 있습니다.

grunt.loadNpmTasks('grunt-contrib-connect');

grunt connect명령을 사용 하여이 태스크를 실행하십시오 .

이 서버는 grunt가 실행되는 동안에 만 실행됩니다. grunt의 작업이 완료되면 웹 서버가 중지됩니다. 이 동작은 keepalive옵션을 사용하여 변경할 수 있으며 ,와 같은 작업을 실행하여 임시로 활성화 할 수 있습니다 grunt connect:targetname:keepalive. targetname아래 코드 샘플에서 "server"와 같습니다.

이 예제에서 grunt connect(또는 더 자세하게는 grunt connect:server)에서 정적 웹 서버를 시작 http://localhost:9001/하고 기본 경로 www-root가 Gruntfile에 상대적인 디렉토리 로 설정되고 이후에 실행되는 모든 작업에서 액세스 할 수 있습니다.

// Project configuration.
grunt.initConfig({
  connect: {
    server: {
      options: {
        port: 9001,
        base: 'www-root'
      }
    }
  }
});

The point of the server task is to have quick and dirty access to static files for testing. grunt server IS NOT a production server environment. It really should only be used during the grunt lifecycle to get static testing assets to the testing environment. Use a full-fledged server, possibly controlled by the NPM lifecycle scripts, for production environments.

참고URL : https://stackoverflow.com/questions/11943212/whats-the-purpose-of-gruntjs-server-task

반응형