小编Ber*_*and的帖子

Grunt没有启动:">> ReferenceError:未定义grunt"

我是NodeJS和Grunt的新手,我正在努力做到这一点.这是我得到的:

$> grunt
Loading "Gruntfile.js" tasks...ERROR
>> ReferenceError: grunt is not defined
Warning: Task "default" not found. Use --force to continue.

Aborted due to warnings.
Run Code Online (Sandbox Code Playgroud)

这是我的Gruntfile:

module.exports = function(grunt) {
        grunt.initConfig({
                compass: {
                        dist: {
                                options: {
                                        config: 'config/config.rb'
                                }
                        }
                }
        });
};

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

grunt.registerTask('default', 'compass');
Run Code Online (Sandbox Code Playgroud)

这是我的package.json:

{
  "name": "tests",
  "version": "0.0.0",
  "description": "Grunt Tests",
  "main": "index.js",
  "devDependencies": {
    "grunt": "~0.4.2",
    "grunt-contrib-compass": "~0.6.0",
    "grunt-contrib-watch": "~0.5.3",
    "grunt-cli": "~0.1.11"
  },
  "scripts": {
    "test": "grunt compass"
  },
  "repository": {
    "type": "git",
    "url": …
Run Code Online (Sandbox Code Playgroud)

node.js npm gruntjs compass-sass

19
推荐指数
1
解决办法
2万
查看次数

将JSON字段转换为ReasonML变体

我有一个JSON结构,其中包含period可以是对象或字符串的字段。我已经在代码中准备好了变体,并且可以正常工作:

type period = {
  start: string,
  end_: string,
};

type periodVariant =
  | String(string)
  | Period(period);
Run Code Online (Sandbox Code Playgroud)

问题是当我尝试将输入JSON转换为变量类型时:我只是不知道该怎么做。这是我的尝试:

let periodVariantDecode = (json: Js.Json.t): periodVariant => {
  switch(json) {
  | String(string) => String(Json.Decode.string(string))
  | period => Period(Json.Decode.{
      start: period |> field("start", string),
      end_: period |> field("end", string),
    })
  };
};
Run Code Online (Sandbox Code Playgroud)

现在,当然是因为我想匹配的东西,是类型还是不行的Js.Json.t对抗String这是我的一部分periodVariant,但我不知道该如何实现我想要的。

json reason bucklescript bs-json

2
推荐指数
1
解决办法
498
查看次数

在服务工作者中处理React应用程序的身份验证

我有一个React应用程序渲染客户端,我通过以下方式处理身份验证:

  1. 加载后,应用程序向后端发出一个AJAX请求,基本上询问用户的会话是否有效;
  2. 它使用服务器的响应更新应用程序的状态;
  3. 它相应地呈现"/"路由(如果会话无效则为主页,如果有效则为仪表板).

(也许在前端应用程序中有更好的解决方案来解决这个问题,如果你有想法,我会全力以赴)

这很好用,但是将服务工作者引入混合并试图将应用程序变成离线优先的渐进式Web应用程序似乎......很复杂.

一方面,如果我不缓存"我登录了吗?" 请求和应用程序处于离线状态,应用程序将始终呈现主页.另一方面,如果我确实缓存了AJAX请求,用户最终会显示一个空的仪表板,因为他们的会话已经过期,服务器将丢弃403.

有没有办法有效地处理这个问题?

authentication reactjs react-router service-worker redux

0
推荐指数
1
解决办法
1811
查看次数

在 GraphQL 模式之间共享结构

我有一个 Apollo GraphQL 服务器与 API 通信,返回响应的大致结构如下:

{
  "pagination": {
    "page": 1,
    // more stuff
  },
  sorting: {
    // even more stuff
  },
  data: [ // Actual data ]
}
Run Code Online (Sandbox Code Playgroud)

这个结构将在我广泛使用的这个 API 的几乎所有响应中共享。data大多数情况下将是一个数组,但也可以是一个对象。

我如何以有效的方式编写它,以便我不必在模式中的每个数据类型上重复所有这些paginationsorting字段?

非常感谢!

relay apollo graphql graphql-js react-apollo

0
推荐指数
1
解决办法
998
查看次数