如何在dist目录而不是app目录中运行grunt服务器?

33 angularjs gruntjs yeoman

grunt build我的AngularJS应用程序添加到我的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'
  ]);
Run Code Online (Sandbox Code Playgroud)

有没有办法grunt server只在我的dist/目录中提供构建的代码?

Jar*_*arl 117

答案非常简短

grunt serve:dist
Run Code Online (Sandbox Code Playgroud)

这适用于我生成的yeoman,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'
    ]);
  });
Run Code Online (Sandbox Code Playgroud)

  • 嗯......我认为这是正确的答案! (10认同)

Der*_*ekR 29

你是否能做到这一点并不重要.重要的是你不应该使用grunt服务器.你可以看到grunt中的服务器任务会在dist文件夹中执行许多你不需要的事情,以及它们都将被硬编码为你的app文件夹.

如果你只是想尝试dist文件夹的结果,你应该做的就是cd进入dist目录,然后启动一个简单的HTTP服务器,就像p​​ython附带的那样.

python -m SimpleHTTPServer
Run Code Online (Sandbox Code Playgroud)

这应该启动一个小服务器,让你尝试dist目录.