programing

앱 디렉토리가 아닌 dist 디렉토리에서 grunt 서버를 실행하는 방법

codeshow 2023. 3. 28. 22:23
반응형

앱 디렉토리가 아닌 dist 디렉토리에서 grunt 서버를 실행하는 방법

끝나고grunt build나의 앵귤러JS 앱에서 내 앱으로dist디렉토리, 테스트하고 싶다.grunt server문제는...grunt server내 안에 있는 모든 코드를 다 써버려서app/디렉토리로 이동합니다.또한, 제가 만든 앱은yo angular.

다음은 Gruntfile.js의 서버 태스크 코드입니다.

grunt.registerTask('server', [
    'clean:server',
    'coffee:dist',
    'compass:server',
    'livereload-start',
    'connect:livereload',
    'open',
    'watch'
  ]);

어떻게 할 수 있을까요?grunt server내 기본 코드만 제공합니다.dist/전화번호부?

아주 짧은 대답은

grunt serve:dist

그건 내 요먼이 만든 거랑 잘 어울린다.Gruntfile.js다음 내용이 포함됩니다.

  grunt.registerTask('serve', function (target) {
    if (target === 'dist') {
      return grunt.task.run(['build', 'connect:dist:keepalive']);
    }

    grunt.task.run([
      'clean:server',
      'bower-install',
      'concurrent:server',
      'autoprefixer',
      'connect:livereload',
      'watch'
    ]);
  });

당신이 그것을 할 수 있는지 없는지는 중요하지 않다.중요한 것은 grunt 서버를 이 작업에 사용하지 않는 것입니다.보시다시피 grunt의 서버 태스크는 dist 폴더에서 필요하지 않은 많은 작업을 수행할 뿐만 아니라 앱 폴더에 대해 모두 하드 코딩됩니다.

dist 폴더의 결과만 시험해 보고 싶다면 dist 디렉토리에 cd를 삽입한 후 python과 함께 제공되는 것과 같은 단순한 HTTP 서버를 부팅해야 합니다.

python -m SimpleHTTPServer

그러면 dist 디렉토리를 테스트하기 위한 작은 서버가 시작됩니다.

다른 사람들은 이렇게 하라고 권하지 않았지만, 저는 이것이 당신이 찾고 있는 것이라고 생각합니다.express를 사용할 때 server.js 파일에서 이와 같은 작업을 수행합니다.

if (process.env.NODE_ENV == 'production') {
    app.use(express.static('/dist'));
}else{
    app.use(express.static('/app'));       
}

이게 도움이 됐으면 좋겠네요!

grunt serve:dist정답은 맞지만 grunt serve:dist를 호출할 때마다 프로젝트 전체를 프로덕션 모드로 컴파일해야 하기 때문에 프로세스가 매우 번거롭습니다.

내가 한 일은 내가 수정한 것이다.Gruntfile.js에서serve작업, 삭제build전송되는 파라미터로부터의 태스크run. 먼저 수동으로 빌드해야 합니다.grunt또는grunt build그리고 나서 전화한다.grunt serve:distURL을 수동으로 엽니다.

언급URL : https://stackoverflow.com/questions/18345179/how-to-run-grunt-server-in-dist-directory-instead-of-app-directory

반응형