小编alf*_*ino的帖子

无法从 PATH 中找到模块 'babel-preset-env' 您的意思是“@babel/env”吗?

Jest cli 突然停止工作,所有测试都失败了:

Cannot find module 'babel-preset-env' from '/PATH'
    - Did you mean "@babel/env"?
Run Code Online (Sandbox Code Playgroud)

我确定使用 babel 6 的模块和我使用 babel 7 的项目之间存在某种不兼容,但我不确定如何解决。

这是 package.json

{
  "name": "testing101",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "start": "parcel index.html",
    "test": "jest src/*.js --watchAll",
    "nyc": "nyc ava",
    "build": "babel src/*.js -d dist"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "@babel/core": "^7.4.5",
    "@babel/preset-env": "^7.4.5",
    "@types/jest": "^24.0.13",
    "jest": "^24.8.0",
    "nyc": "^14.1.1",
    "parcel-bundler": "^1.7.0"
  },
  "jest": {
    "verbose": true,
    "testURL": "http://localhost:1234/",
    "collectCoverage": true
  }, …
Run Code Online (Sandbox Code Playgroud)

node.js jestjs babeljs

8
推荐指数
3
解决办法
1万
查看次数

访问新网址赛普拉斯

我是赛普拉斯的新手。我的应用程序作为“路由系统”手动更改window.location.hash。在某些时候,我单击一个更改哈希值的按钮,因此应该在测试期间更改页面。我可以看到执行过程中出现一个“new url”条目,但是如何让 cypress 访问该 url?

在此输入图像描述

简而言之,问题是什么:你可以看到我输入了密码,然后{enter}。运行测试我可以看到地址栏中的哈希值发生变化,但页面并没有根据哈希值变化而变化。

这是测试代码

context("Workflow", () => {

    it("login", () => {

        cy.visit("http://localhost:3000/src/#login")
        cy.get("#username").type("demo").should("have.value", "demouser")
        cy.get("#password").type("demo{enter}").should("have.value", "demo") // this should redirect to "/#home"
        //cy.wait(10000)
        cy.get(".subtitle").should("have.value", "Welcome") //this line fails as ".subtitle" is an element of "/#home"
    })
})
Run Code Online (Sandbox Code Playgroud)

编辑:经过大量失败的尝试,我想出了一个部分有效、笨重且hacky的解决方案。我认为我不需要使用它reload()来解决这个问题(必须有更好的解决方案..),但为了使其正常工作,我必须等待所有远程请求完成(否则reload()取消它们)。我说部分工作是因为你可以从代码中的注释中看到,如果我尝试#login先访问,然后按照重定向#home,然后将页面更改为#browser,最后一个不起作用(我可以看到哈希更改为#browser,但是页面仍然是#home)。

import 'cypress-wait-until';

let i = 0;

context("Workflow", () => {
    it("login", () => {
        cy.server( {
            onRequest: () …
Run Code Online (Sandbox Code Playgroud)

javascript e2e-testing cypress lit-element

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

不能缩小离子项目

在我跑完之后,我尝试cordova-uglify(链接)缩小Ionic1项目

ionic cordova build --release
Run Code Online (Sandbox Code Playgroud)

我看到我的js源代码在...的www文件夹中app-release-unsigned.apk根本没有缩小.

ionic info 打印:

[WARN] Error with .\www\lib\ionic\version.json file: FILE_NOT_FOUND, trying
       .\bower.json.

cli packages: (C:\Program Files\nodejs\node_modules)

    @ionic/cli-utils  : 1.19.1
    ionic (Ionic CLI) : 3.19.1

global packages:

    cordova (Cordova CLI) : 8.0.0
    Gulp CLI              : not installed globally

local packages:

    Cordova Platforms : android 7.0.0 ios 4.5.4
    Ionic Framework   : ionic1 1.3.4

System:

    Android SDK Tools : 26.0.1
    Node              : v8.9.4
    npm               : 5.6.0
    OS                : Windows 7 …
Run Code Online (Sandbox Code Playgroud)

cordova ionic-framework

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

正则表达式作为投影中的$ filter

我试图找到(使用正则表达式)一个数组字段并仅返回该元素

这是我的数据

  [
 {
"_id": "56d6e8bbf7404bd80a017edb",
"name": "document1",
"tags": [
  "A area1",
  "B area2",
  "C area3"
]
},
{
"_id": "56d6e8bbf7404bd82d017ede",
"name": "document2",
"tags": [
  "b_area3",
  "b_area4",
  "b_area5"
  ]
}
]
Run Code Online (Sandbox Code Playgroud)

我的查询

var query=new RegExp('^'+string, "i");

Model.find({tags:query},{'tags.$': 1}, function(err,data){
        if(err) console.log(err);
        res.json(data);
    });
Run Code Online (Sandbox Code Playgroud)

此查询仅选择标记字段(如我所愿),但选择第一个元素.我需要与查询匹配的元素.

编辑:我也尝试了mongodb聚合,$ filter cond是错误的.我收到错误"MongoError:invalid operator $ regex"

caseNote.aggregate([
    { $match: {tags:query}},
    { $project: {
        tags: {$filter: {
            input: 'tags',
            as: 'item',
            cond: {$regex: ['$$item', query]}
        }}
    }}
], function (err, result) {
    if (err) {
        console.log(err);
    } …
Run Code Online (Sandbox Code Playgroud)

mongoose mongodb

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

Picker onValueChange() 调用了两次

我想使用 react-18next 支持本地化。此组件显示Picker,设置 LocalStorage 键(所选语言)并更改应用程序语言。我注意到该onValueChange方法被调用了两次。第一个调用(在 Picker 项目上使用正确的选择点击操作)具有正确的参数(我选择的语言),第二个调用具有第一个 Picker 项目的值,只要值为 (!)。

示例:如果我选择EnglishPicker 项目,我会看到 Picker 切换到英语(第一次_changeLanguage()调用),然后再次切换到“设备”(第二次_changeLanguage()调用)。我确定这是一个异步操作问题,不知道在哪里..

@translate(['settings', 'common'], { wait: true })
export default class Settings extends Component {
    state = {};
     constructor(props)  {
        super(props);
    }
    componentWillMount() {
        this.getLang();
    }

    async _changeLanguage(ln) {
        const { t, i18n, navigation } = this.props;
        console.warn("_changeLanguage: ",ln)
        await this.promisedSetState({lang:ln})
        if(ln=="device") {
                console.warn("removing lang setting")
                await AsyncStorage.removeItem('@App:lang');
        } else {
                console.warn("lang setting: ", ln)
                await AsyncStorage.setItem('@App:lang', …
Run Code Online (Sandbox Code Playgroud)

i18next react-native expo react-i18next

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

怎么做bootstrap tipsy工具提示多行

在标题中,我如何将工具提示分为两行?

我也会使用一些html标签(比如span或p).

我已经尝试过html实体,它不起作用. Some<br> text

jquery tipsy twitter-bootstrap-3

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

WordNet Python的单词相似度

我试图找到一种可靠的方法来衡量2个术语的语义相似性.第一个度量可以是下义/上位图上的路径距离(最终,2-3个度量的线性组合可能更好......).

from nltk.corpus import wordnet as wn
dog = wn.synset('dog.n.01')
cat = wn.synset('cat.n.01')
print(dog.path_similarity(cat))
Run Code Online (Sandbox Code Playgroud)
  • 我仍然没有得到什么n.01方法,为什么它是必要的.
  • 有一种方法可以直观地显示2个术语之间的计算路径?
  • 我可以使用哪种其他nltk语义指标?

python nlp nltk semantics

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

等待循环vs Promise.all

在db上有一组异步操作要做,我想知道执行“阻塞” await循环与执行“阻塞” 循环在性能方面有什么区别Promise.all

let insert = (id,value) => {
    return new Promise(function (resolve, reject) {
        connnection.query(`insert into items (id,value) VALUES (${id},"${value}")`, function (err, result) {
            if (err) return reject(err)
                return resolve(result);
        });
    });
};
Run Code Online (Sandbox Code Playgroud)

Promise.all解决方案(它需要一个for循环来构建promises数组。)

let inserts = [];
for (let i = 0; i < SIZE; i++) inserts.push(insert(i,"..string.."))
Promise.all(inserts).then(values => { 
    console.log("promise all ends");
});
Run Code Online (Sandbox Code Playgroud)

等待循环解决方案

let inserts = [];
(async function loop() {
    for (let i = 0; i < SIZE; i++) {
        await insert(i, …
Run Code Online (Sandbox Code Playgroud)

javascript node.js ecmascript-6 es6-promise

3
推荐指数
3
解决办法
2080
查看次数

在 bash 脚本中设置环境变量

我想设置 2 个临时环境变量,然后运行一个二进制文件。

命令是这样的:

ENV_1=firstparam ENV_2=secondparam my_binary
Run Code Online (Sandbox Code Playgroud)

我想在 bash 脚本中移动 2 个环境变量分配并使用如下命令:

setparams.sh my_binary
Run Code Online (Sandbox Code Playgroud)

setparams.sh

#!/bin/bash
ENV_1=firstparam
ENV_2=secondparam
Run Code Online (Sandbox Code Playgroud)

这是怎么回事?为什么没有设置变量?

bash

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

链接一系列的承诺

我需要顺序执行一堆'promisified'函数(我的意思是同步,因为每一个都需要前一个的结果).此代码打印bar1bar0时,我期望bar0bar1.

function _setTime(str) {
    return new Promise(function(resolve, reject) {
      setTimeout(function() {
        resolve(`bar${str} `);
      }, 1);
    });
}
_setTime("0")
    .then(function(str) {
        return _setTime("1"+str)
  })
  .then(function(str) {
        console.log(str)
  })
Run Code Online (Sandbox Code Playgroud)

javascript

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

错误:EPERM:不允许操作,重命名/删除

我正在努力解决cordova和npm clis错误。我知道这是一个非常常见的错误:我每天都会在不同的项目和平台上收到此错误。

我注意到我的 Ionic1 应用程序,它使用 crosswalk-webview,在 Android 6 上工作,但在 Android 7 上崩溃(这似乎是一个已知的错误)。 这些是我尝试过的步骤:

  • 我尝试删除并重新添加 crosswalk-webview: cordova plugin rm cordova-plugin-crosswalk-webview cordova plugin add cordova-plugin-crosswalk-webview 添加插件时出现 npm 错误: npm verb stack Error: EPERM: operation not permitted, rename...

  • 构建失败: ionic cordova build --release android出现相同的错误: Error: EPERM: operation..

  • 由于几个插件已经过时,我想删除并重新添加整个平台 android cordova platform rm android 大约 1 小时后命令仍然卡住所以我终止了它。

现在,如果我尝试将 android 添加为平台,则会出现错误: Error: EPERM: operation not permitted, rename...

我尝试降级 npm,我尝试了以下 5.6.0、5.5.1、5.4.2、5.3.0、5.0.0、4.6.0 版本。我重新安装了 node、cordova、ionic,清除了 npm 缓存。我不解决。这显然是一个 NPM 问题,也许这里某处知道如何解决..

在当前状态下,如果我尝试: cordova platform add …

npm cordova ionic-framework cordova-plugins

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

将函数传递给孩子

代码非常简单:我尝试将函数addContactFn()MainCompto传递给SideMenu。单击时出现错误

未捕获的类型错误:this.value.handleEvent 不是函数

class MainComp extends LitElement {
    constructor(){
        super()
        this.addContactFn = this.addContactFn.bind(this)
    }
    addContactFn() {
        console.log("clicked");
    }
    render(){
        return html`
<div class="main-page">
   <side-menu addContactFn="${this.addContactFn}"></side-menu>
</div>
`
    }

}


class SideMenu extends LitElement {
    constructor(){
        super()
    }
    static get properties(){
        return {
            addContactFn: Function
        }
    }
    render(){
        return html`<a @click="${this.addContactFn}">Add contact</a>`
    }

}
Run Code Online (Sandbox Code Playgroud)

polymer-3.x lit-element

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

LitElement 生命周期:在第一次渲染之前

有没有办法在组件具有可用属性之后但在第一次渲染之前执行方法?我的意思是 classcontructor()firstUpdated(). 这听起来微不足道,也许实际上我错过了一些微不足道的东西..

polymer lit-element

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