小编Sam*_*mpo的帖子

“npm 审计修复”究竟是做什么的?

npm audit fix旨在自动升级/修复 npm 包中的漏洞。但是,我还没有发现它究竟做了什么来修复这些漏洞。

我认为这npm audit fix会将依赖项和依赖项的依赖项升级到包的 semver 定义允许的最新版本——实际上与rm package-lock.json; npm install. 但是npm audit fix在锁定文件删除+重新安装后仍然会执行很多更改。

究竟是npm audit fix做什么的?例如,它是否安装了比相应package.json(但仍与 semver 兼容)允许的版本更新的依赖项版本?

npm package.json npm-audit

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

如何将Map <String,Object>反序列化为POJO?

我有一个Map <String,Object>,它包含一个反序列化的JSON形式.我想将其反序列化为POJO的字段.

我可以使用Gson通过将Map序列化为JSON字符串然后将JSON字符串反序列化为POJO来执行此操作,但这样效率很低(请参阅下面的示例).如何在没有中间步骤的情况下执行此操作?

解决方案最好使用Gson或Jackson,因为它们已经被项目使用.

示例代码:

import java.util.HashMap;
import java.util.Map;

import com.google.gson.Gson;

public class Test {
    public static void main(String[] args) {
        Map<String, Object> innermap = new HashMap<String, Object>();
        innermap.put("number", 234);
        innermap.put("string", "bar");
        Map<String, Object> map = new HashMap<String, Object>();
        map.put("number", 123);
        map.put("string", "foo");
        map.put("pojo2", innermap);

        Gson gson = new Gson();

        // How to perform this without JSON serialization?
        String json = gson.toJson(map);
        MyPojo pojo = gson.fromJson(json, MyPojo.class);

        System.out.println(pojo);
    }
}


class MyPojo {
    private int number;
    private String string;
    private …
Run Code Online (Sandbox Code Playgroud)

java serialization jackson gson

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

在交互式Scala控制台中打印整个结果

当我在Scala交互式控制台中输入内容时,控制台会打印语句的结果.如果结果太长,控制台会裁剪它(向右滚动以查看它):

scala> Array.fill[Byte](5)(0)
res1: Array[Byte] = Array(0, 0, 0, 0, 0)

scala> Array.fill[Byte](500)(0)
res2: Array[Byte] = Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, …
Run Code Online (Sandbox Code Playgroud)

scala read-eval-print-loop

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

在Linux测试中,Webdriver会随机生成"chrome notachable"

我们的CI测试随机失败,出现"chrome not reachable"错误.最初它们非常罕见,但随着我们的测试基础的增长,它变得无法容忍.关于此问题还有其他一些问题/错误报告,但这些问题似乎与我们的案例无关.

测试使用Cucumber + Ruby + Watir-Webdriver + Selenium-Webdriver(每个gem的最新版本)编写.我们使用物理硬件上的xvfb(无虚拟化)在无头模式下运行Ubuntu Linux 12.04上的测试.我可以在运行Linux Mint 16的笔记本电脑上非常可靠地重现它.我们正在并行运行测试以加快速度.

我尝试过使用Chromium 18.0.1025.151~r130497-0ubuntu1和Google Chrome 34.0.1847.116以及ChromeDriver v2.9.248304.旧版本的浏览器和ChromeDriver也出现了同样的问题.

通常,由于相同的错误,多个测试连续失败,然后在同一运行期间的后续测试中再次开始工作.

堆栈跟踪是:

  chrome not reachable
    (Session info: chrome=34.0.1847.116)
    (Driver info: chromedriver=2.9.248304,platform=Linux 3.2.0-60-generic x86_64) (Selenium::WebDriver::Error::WebDriverError)
  /home/weller/jenkins/workspace/TEST_CHROME_C/server/cucumber/support/step_support/browsers.rb:14:in `goto'
  /home/weller/jenkins/workspace/TEST_CHROME_C/server/cucumber/support/step_support/browsers.rb:35:in `blank_page'
  /home/weller/jenkins/workspace/TEST_CHROME_C/server/cucumber/support/step_support/browsers.rb:44:in `add_cookie'
  ./features/support/mocking.rb:11:in `mock'
  ./features/support/time_steps.rb:5:in `/^the current time zone is "(.*?)"$/'
  features/trackers/mood/mood_data_entry.feature:7:in `And the current time zone is "GMT+4"'
Run Code Online (Sandbox Code Playgroud)

更新: 问题似乎与并行性有关.当其中一个测试退出时,有可能另一个测试将开始失败,并且"chrome无法访问".如果我在测试结束时添加延迟,以便在关闭任何Chrome窗口之前所有测试都已完成,则测试运行没有问题.我向ChromeDriver 报告了有关此问题的错误.

google-chrome webdriver selenium-chromedriver selenium-webdriver

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

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

如何在YAML多行字符串中进行Unicode转义?

是否可以\u2009在YAML多行字符串中使用Unicode字符转义(例如)?

this_escape_works: "foo\u2009bar"
this_escape_doesnt: >
  foo\u2009bar
Run Code Online (Sandbox Code Playgroud)

unicode yaml

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

如何更改 Android 上软件主页/后退按钮的背景颜色?

许多 Android 设备使用屏幕底部的软件主页/后退按钮。各种应用程序会更改这些按钮的颜色,以更好地匹配应用程序颜色主题。

在 React Native 中如何改变这些颜色?(最好以编程方式,这样浅色和深色屏幕可以使用不同的按钮颜色。)

三星 Galaxy S10 的示例:

团队:

Teams 中的 Android 软件按钮

Slack 第一个屏幕:

Slack 中的 Android 软件按钮

Slack 第二个屏幕:

在此输入图像描述

android react-native

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

在Ruby中缓存DNS查询

我们将Ruby中的rest-client gem用于REST API的自动化测试。但是我注意到,它在发出的每个请求中都对主机名进行DNS查找。在本地环境中,如果使用“ localhost”,则测试运行速度很快,但是,如果使用正确的主机名,则它们将花费2.5倍的时间,从而执行大量的DNS查找。

我认为这个问题与REST客户端无关,而与Ruby网络有关。我尝试要求使用“ resolv”和“ resolv-replace”,但它们没有帮助。“ dig”报告DNS查询的TTL为1小时。

有没有办法让Ruby缓存DNS请求?我可以更改代码以显式使用IP地址,但这是解决此问题的错误位置。

我正在运行Ubuntu 12.04和Ruby 1.9.3。

ruby dns caching

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

使用requirejs + uglify限制行长度

我们requirejs.optimize(config)在构建脚本中使用uglify2来缩小我们的生产JavaScript代码.我们希望将缩小的行长度限制为大约80个字符,这样即使从生产代码中调试JavaScript错误也会更容易.(大多数浏览器只报告onerror处理程序中的行号而不是列,因此源映射没有帮助.)

Uglify2 在美化选项中包含max-line-len选项.我已经尝试了以下选项的许多不同组合,但是无法使代码缩小,但行长度有限:

config = {
  optimize: 'uglify2',
  uglify2: {
    output: {
      beautify: true
    },
    beautify: {
      beautify: false,
      max_line_len: 80
    }
  },
  // ...
}
Run Code Online (Sandbox Code Playgroud)

如何通过选项将行长度限制为uglify2?

javascript minify requirejs uglifyjs2

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

电话 URI 中的加号是否应该编码?

在 URI 中,空格可以编码为+. 既然如此,那么在创建具有国际前缀的 tel URI 时是否应该对前导加号进行编码?

哪个更好?两者在实践中都有效吗?

<a href="tel:+1234">Call me</a>
<a href="tel:%2B1234">Call me</a>
Run Code Online (Sandbox Code Playgroud)

uri tel

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

启动 Azure DevOps 管道时如何提示输入变量?

我试图让 Azure DevOps 管道在手动启动管道(使用新的 YAML 语法定义)时提示输入版本号。

即使我在模板中定义变量,启动屏幕也会显示“此管道没有定义的变量”。如何定义变量以便它们显示在管道启动中?

当前的 YAML 定义包含:

variables:
  - name: versionName
    value: ''
Run Code Online (Sandbox Code Playgroud)

启动管道时不会显示这些:

运行管道

azure-devops azure-devops-pipelines

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