小编jcg*_*582的帖子

eslint 错误无法读取 null 的属性“范围”

我已经有同样的 eslint 问题好几天了。

团队中的每个人都拥有相同的 eslintrc 和已安装的 eslint 版本。他们的 eslint 工作正常,我的不行。

我尝试重新启动我的计算机,删除 node_modules,删除我的用户下的任何内容(在主目录中)。什么都行不通。

问题:

./node_modules/.bin/eslint *.js* 
                                                                         ? 1 ? ? 11504 ? 10:19:47
Cannot read property 'range' of null
TypeError: Cannot read property 'range' of null
    at SourceCode.getTokenBefore (/Users/jhill/gitRepo/sponsoroo/node_modules/eslint/lib/token-store/index.js:303:18)
    at checkSpacingBefore (/Users/jhill/gitRepo/sponsoroo/node_modules/eslint/lib/rules/template-curly-spacing.js:52:42)
    at TemplateElement (/Users/jhill/gitRepo/sponsoroo/node_modules/eslint/lib/rules/template-curly-spacing.js:117:17)
    at listeners.(anonymous function).forEach.listener (/Users/jhill/gitRepo/sponsoroo/node_modules/eslint/lib/util/safe-emitter.js:47:58)
    at Array.forEach (<anonymous>)
    at Object.emit (/Users/jhill/gitRepo/sponsoroo/node_modules/eslint/lib/util/safe-emitter.js:47:38)
    at NodeEventGenerator.applySelector (/Users/jhill/gitRepo/sponsoroo/node_modules/eslint/lib/util/node-event-generator.js:251:26)
    at NodeEventGenerator.applySelectors (/Users/jhill/gitRepo/sponsoroo/node_modules/eslint/lib/util/node-event-generator.js:280:22)
    at NodeEventGenerator.enterNode (/Users/jhill/gitRepo/sponsoroo/node_modules/eslint/lib/util/node-event-generator.js:294:14)
    at CodePathAnalyzer.enterNode (/Users/jhill/gitRepo/sponsoroo/node_modules/eslint/lib/code-path-analysis/code-path-analyzer.js:608:23)
Run Code Online (Sandbox Code Playgroud)

细节

版本:

./node_modules/.bin/eslint --version  

v4.16.0
Run Code Online (Sandbox Code Playgroud)

.eslintrc

{
  "extends": ["airbnb-base", "plugin:security/recommended"],
  "rules": {
      "import/prefer-default-export": "off", …
Run Code Online (Sandbox Code Playgroud)

node-modules eslint

16
推荐指数
4
解决办法
2万
查看次数

在GKE上为我的负载均衡器设置静态外部IP

我正在尝试为GKE上的负载均衡器设置静态外部IP,但没有运气.这是我的Kubernetes服务配置文件:

kind: Service
apiVersion: v1
metadata:
  name: myAppService
spec:
  selector:
    app: myApp
  ports:
  - protocol: TCP
    port: 3001
    targetPort: 3001
  type: LoadBalancer
  loadBalancerIP: *********
Run Code Online (Sandbox Code Playgroud)

这不起作用.我希望看到我的外部IP为*********,但它只是说待处理:

?  git:(master) kubectl get services
NAME         CLUSTER-IP    EXTERNAL-IP   PORT(S)          AGE
kubernetes   *********    <none>        443/TCP          5m
myAppService   *********   <pending>     3001:30126/TCP   5m
Run Code Online (Sandbox Code Playgroud)

更多细节:

?  git:(master) kubectl describe services
Name:           kubernetes
Namespace:      default
Labels:         component=apiserver
            provider=kubernetes
Annotations:        <none>
Selector:       <none>
Type:           ClusterIP
IP:         *********
Port:           https   443/TCP
Endpoints:      *********
Session Affinity:   ClientIP
Events:         <none>


Name:           myAppService
Namespace:      default …
Run Code Online (Sandbox Code Playgroud)

kubernetes google-kubernetes-engine

8
推荐指数
2
解决办法
3390
查看次数

Google Cloud Datastore开玩笑Node.js node_modules

我试图通过模拟runQuery和createQuery函数对下面的listEntities函数进行单元测试。也许我应该放弃并使用仿真器进行集成测试。反正这是我的代码

实现方式:

const Datastore = require('@google-cloud/datastore');
const datastore = Datastore(); 

const runQueryDS = query => (datastore.runQuery(query));   
const createQueryDS = kind => (datastore.createQuery(kind));

export const listEntities = (kind, runQuery = runQueryDS, createQuery = createQueryDS) => {
  console.log('listEntities');
  const query = createQuery(kind);
  runQuery(query)
    .then(results => (results[0]));
};
Run Code Online (Sandbox Code Playgroud)

测试:

import { listEntities } from './datastore.api';

describe('datastore api', () => {
  describe('listEntities', () => {
    test('should return list of items', () => {
      console.log('begin test');
      const kind = 'TestRun';
      const createdQuery = 'createdQuery';
      const …
Run Code Online (Sandbox Code Playgroud)

node.js npm google-cloud-datastore jest

5
推荐指数
1
解决办法
224
查看次数

Circleci Checkout是否从master或特定提交的代码中提取最新代码

您好stackoverflow / circleci上帝。

我已经使用CircleCI已有一段时间了,我对“结帐”步骤有疑问,我将尽力解释。这是我的circleCI配置文件的片段(我有一个工作为“ a-job”,其第一步是结帐):

a-job:
  docker:
    - image: docker-image-here
  steps:
    - checkout
    ...
Run Code Online (Sandbox Code Playgroud)

我的问题是,circleci步骤“签出”是从母版还是特定提交的代码中提取最新代码。

即签出只是git clone master:latest还是git clone特定提交在这里

git circleci

5
推荐指数
1
解决办法
1049
查看次数

Node.js中的单元测试/模拟Google数据存储

const Datastore = require('@google-cloud/datastore');
const datastore = Datastore();

function listTasks(res) {
  const query = datastore.createQuery('Test');
  datastore.runQuery(query)
    .then((results) => {
      const tasks = results[0];
      tasks.forEach((task) => {
        const taskKey = task[datastore.KEY];
        console.log(taskKey.id, task);
      });
      res.send(tasks);
    })
    .catch((err) => {
      console.error('ERROR:', err);
    });
}
Run Code Online (Sandbox Code Playgroud)

我想对上面的代码进行单元测试,但是我不知道如何模拟/存根谷歌云数据存储对象/方法。例如,我想模拟/存根datastore.createQuery('Test'),但不知道如何。

google-app-engine unit-testing node.js google-cloud-datastore google-cloud-node

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

依赖范围内的 C++ 可变参数模板语法

我在实际代码中遇到问题,并使用以下示例代码复制了该问题。

\n
#include <iostream>\n#include <tuple>\n\nusing namespace std;\n\nstruct Identity\n{\n    template <typename... T>\n    static std::tuple<T...> Apply(T... val)\n    {\n        return std::tuple(val...);\n    }\n};\n\ntemplate <typename F, typename... T>\nstd::tuple<T...> Apply(T... t)\n{\n    return F::Apply<T...>(t...);\n}\n\nint main()\n{\n    const auto t = Apply<Identity>(1., 2., 3.);\n    cout << std::get<0>(t);\n    cout << std::get<1>(t);\n    cout << std::get<2>(t);\n    return 0;\n}\n
Run Code Online (Sandbox Code Playgroud)\n

编译错误:

\n
main.cpp:26:22: error: expected primary-expression before \xe2\x80\x98...\xe2\x80\x99 token\n     return F::Apply<T...>(t...);\n                      ^~~\nmain.cpp:26:22: error: expected \xe2\x80\x98;\xe2\x80\x99 before \xe2\x80\x98...\xe2\x80\x99 token\nmain.cpp:26:22: error: expected primary-expression before \xe2\x80\x98...\xe2\x80\x99 token\n
Run Code Online (Sandbox Code Playgroud)\n

如果我从有问题的语句中删除 <T...> return F::Apply(t...);,并让编译器推断出类型,它就会起作用。但是,在我的现实世界代码中,我需要指定类型。特定类型并满足编译器的正确语法糖是什么?

\n

c++ variadic-templates c++17

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