javascript - 将 grunt-connect-proxy 添加到我的 Yeoman 生成的 gruntfile.js

标签 javascript gruntjs grunt-connect-proxy

我是 Grunt(和一般的 JavaScript)的新手,我正在尝试将 grunt-connect-proxy 添加到我的 Yeoman 生成的 gruntfile (generator-angular 0.10.0)。

我读过 -->this指南帮助我,但它似乎不再以相同的方式完成。

这是生成的 gruntfile 的样子

// The actual grunt server settings
connect: {
  options: {
    port: 9000,
    // Change this to '0.0.0.0' to access the server from outside.
    hostname: 'localhost',
    livereload: 35729
  },
  proxies: [
    {
      context: '/api',
      host: 'localhost',
      port: 8080,
      https: false
    }
  ],
  livereload: {
    options: {
      open: true,
        return [
          connect.static('.tmp'),
          connect().use(
            '/bower_components',
            connect.static('./bower_components')
          ),
          connect.static(appConfig.app)
        ];
      }
    }
  },
  test: {
    options: {
      port: 9001,
      middleware: function (connect) {
        return [
          connect.static('.tmp'),
          connect.static('test'),
          connect().use(
            '/bower_components',
            connect.static('./bower_components')
          ),
          connect.static(appConfig.app)
        ];
      }
    }
  },
  dist: {
    options: {
      open: true,
      base: '<%= yeoman.dist %>'
    }
  }
},

如果我切换这部分:

            return [
          connect.static('.tmp'),
          connect().use(
            '/bower_components',
            connect.static('./bower_components')
          ),
          connect.static(appConfig.app)
        ];

对于这段代码,摘自指南:

          base: [
        '.tmp',
        '<%= yeoman.app %>'
      ],
      middleware: function (connect, options) {
        if (!Array.isArray(options.base)) {
          options.base = [options.base];
        }

        // Setup the proxy
        var middlewares = [require('grunt-connect-proxy/lib/utils').proxyRequest];

        // Serve static files.
        options.base.forEach(function (base) {
          middlewares.push(connect.static(base));
        });

        // Make directory browse-able.
        var directory = options.directory || options.base[options.base.length - 1];
        middlewares.push(connect.directory(directory));

        return middlewares;

它将使代理工作,并且我从端口 9000(我的 angular-app 使用)获取我的 api。 但它会弄乱CSS。我想这与凉亭组件有某种关系。但我不知道如何将 bower 部分添加到教程代码中,反之亦然。

非常感谢!

最佳答案

这是解决方案(找到它 here ):

...
livereload: {
  options: {
    open: true,
    //base: [
    //  '.tmp',
    //  '<%= yeoman.app %>'
    //],
    //middleware: function (connect) {
    //  return [
    //      connect.static('.tmp'),
    //      connect().use(
    //          '/bower_components',
    //          connect.static('./bower_components')
    //      ),
    //      connect.static(appConfig.app)
    //  ];
    //}
    middleware: function (connect, options) {
        var middlewares = [];

        //if (!Array.isArray(options.base)) {
        //  options.base = [options.base];
        //}

        // Setup the proxy
        middlewares.push(require('grunt-connect-proxy/lib/utils').proxyRequest);

        // Serve static files
        //options.base.forEach(function(base) {
        //  middlewares.push(connect.static(base));
        //});

        middlewares.push(connect.static('.tmp'));

        middlewares.push(
            connect().use(
                '/bower_components',
                connect.static('./bower_components')
            )
        );
        middlewares.push(connect.static(appConfig.app));

        return middlewares;
    }
  }
},
...

关于javascript - 将 grunt-connect-proxy 添加到我的 Yeoman 生成的 gruntfile.js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27622991/

相关文章:

javascript - OnClick如何选择取消选择状态的背景颜色

php - $http.get 返回实际的 php 脚本而不是运行它(yeoman,grunt)

javascript - 在 Grunt.js 中使用 clean 或 clean-empty 任务删除空文件夹

node.js - Grunt 服务 "configureProxies:server"未找到且 "connect_proxy.js"错误

proxy - 使用 grunt-connect-proxy 的最小示例

javascript - 如何使用对象点键和数组点图进行迭代以显示组件中的数据?

javascript - 是否可以从 inspectedWindow.eval 中向开发工具面板发送消息?

javascript - 如何使用 JavaScript 从动态存储数据的网站获取跨度值

javascript - 无法让 Jasmine 使用基本库