我正在尝试编写一个gitlab-ci.yml使用多行字符串作为命令的文件.但是,它似乎没有被解析.我都试过了- |,并- >用相同的结果.
stages:
- mystage
Build:
stage: mystage
script:
- |
echo -e "
echo 'hi';
echo 'bye';
"
Run Code Online (Sandbox Code Playgroud)
当它尝试运行时,它只显示echo -e '要运行的脚本,而不是整个多行字符串.这给我带来了问题.
写这样的东西的正确语法是什么?
我以前从未见过的一件有趣的事情发布在另一个问题上.他们有类似的东西:
var i = + +1;
Run Code Online (Sandbox Code Playgroud)
他们认为额外+将它转换为字符串,但他们只是添加到一个字符串,这是导致它转换的.
然而,这引出了一个问题:这里发生了什么?
我本来希望这是一个编译器错误,但JavaScript(至少在Chrome中)对它来说很好......它基本上什么都不做.
我创建了一个小JSFiddle来演示:Demo
var i = 5;
var j = + +i;
document.body.innerHTML = i === j ? 'Same' : 'Different';Run Code Online (Sandbox Code Playgroud)
任何人都知道实际发生了什么以及JavaScript在这个过程中做了什么?
我想也许它会像对待它一样++i,但i不会增加,你甚至可以使用一个值(例如+ +5)来做,这是你无法做到的++(例如,++5是一个参考错误).
间距也不会影响它(例如,+ + 1并且+ +1是相同的).
我最好的猜测是它基本上将它们视为正面/负面的迹象并将它们组合在一起.它看起来像1 == - -1和-1 == + -1,但是这仅仅是太奇怪了.
这只是一种古怪的行为,还是在某个标准中记录?
是否可以使用calc()乘以或除以基于单位的值(如100%,5px等).
例如,我希望做这样的事情:
width: calc(100% * (.7 - 120px / 100%));
Run Code Online (Sandbox Code Playgroud)
希望它解决类似的问题(假设100%= 500px):
width: calc(500px * (.7 - 120px / 500px));
width: calc(500px * (.7 - .24));
width: calc(500px * .46);
width: calc(230px);
Run Code Online (Sandbox Code Playgroud)
然而,在经过一些实验之后,看起来我不能将基于单位的价值作为分裂的分母.
我也似乎并不能够多两个值在一起像5px * 10px或5px * 100%.
我知道在100%的情况下允许这样做没有意义,但在我的用例中,我想知道120px的总宽度是多少百分比,然后我将其输入到我的其余部分.计算.
要么就是这样,或者如果有人能想出一种不同的方式来编写它,那么它也会起作用.我绞尽脑汁,无法想出任何东西.
我知道这可能是不可能的,但有一种干净的方法在YAML config/services/etc中使用PHP类常量.Symfony2的文件?
例如,如果我有这个:
namespace My\Bundle\DependencyInjection;
class MyClass
{
const MY_CONST = 'cookies';
}
Run Code Online (Sandbox Code Playgroud)
这样的事情是可能的(在.yml文件中):
services:
my_service:
class: Some\Class
arguments:
- %My\Bundle\DependencyInjection\MyClass::MY_CONST%
Run Code Online (Sandbox Code Playgroud)
这对于帮助保持两者之间的一致性有很大帮助.
我们有一个问题,其中嵌入式Tomcat正在IllegalArgumentException从抛出LegacyCookieProcessor。它抛出500 HTTP响应代码。
我们需要处理异常并对其进行处理(特别是将其发送为400)。
典型的@ExceptionHandler(IllegalArgumentException.class)似乎没有被触发,Google似乎只给出了处理Spring Boot特定异常的结果。
这是重现该行为的示例。您可以通过下载包含2.1.5.RELEASE版本中的spring-web(https://start.spring.io/)的初始项目来执行示例。然后将以下两个类添加到您的项目。
DemoControllerAdvice.java
package com.example.demo;
import java.util.HashMap;
import java.util.Map;
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseStatus;
import org.springframework.web.bind.annotation.RestControllerAdvice;
@RestControllerAdvice
public class DemoControllerAdvice {
@ExceptionHandler(IllegalArgumentException.class)
@ResponseStatus(HttpStatus.FORBIDDEN)
public Map<String, String> forbiddenHandler() {
Map<String, String> map = new HashMap<>();
map.put("error", "An error occurred.");
map.put("status", HttpStatus.FORBIDDEN.value() + " " + HttpStatus.FORBIDDEN.name());
return map;
}
}
Run Code Online (Sandbox Code Playgroud)
DemoRestController.java
package com.example.demo;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class DemoRestController {
@GetMapping(value = "/working") …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用如下所示的脚本:
{
"scripts":
"setup": "mkdir -p ./my-dir"
}
Run Code Online (Sandbox Code Playgroud)
它失败了,至少在Windows上,即使我从Git Bash提示符运行它也是如此.即使尝试只是mkdir ./my-dir不起作用.我无法弄清楚它应该失败的原因.
它给出的错误是"语法不正确"错误:
> my-app@0.0.1 stage C:\my-app
> mkdir ./my-dir
The syntax of the command is incorrect.
npm ERR! Windows_NT 6.1.7601
npm ERR! argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "run" "stage"
npm ERR! node v6.4.0
npm ERR! npm v3.10.3
npm ERR! code ELIFECYCLE
npm ERR! my-app@0.0.1 stage: `mkdir ./my-dir`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the my-app@0.0.1 stage script 'mkdir ./my-dir'.
npm ERR! Make sure …Run Code Online (Sandbox Code Playgroud) 有没有办法用PHPUnit创建一个mock类,然后我可以使用它的类名创建一个新的实例?
我有一个定义两种方法的接口.就像是:
interface FooInterface {
function getA();
function getB();
}
Run Code Online (Sandbox Code Playgroud)
然后我有另一个接受类名的类,创建该类的实例,检查它是否是它所期望的实例(FooInterface),然后在该类上调用两个方法来获取一些信息.
class FooInfo {
protected $a;
protected $b;
public function __construct($fooClass) {
$foo = new $fooClass;
if (!($foo instanceof FooInterface)) {
throw new \Exception();
}
$this->a = $foo->getA();
$this->b = $foo->getB();
}
}
Run Code Online (Sandbox Code Playgroud)
我知道如何模拟一个对象就好了.问题是,因为这个类接受一个类名,而不是一个对象(它是一个Manager的一部分,根据需要创建给定类的实例),我不能使用普通的模拟对象.
我试着制作一个模拟对象,然后使用该类名.它似乎创造了对象很好,甚至似乎有我嘲笑的功能.但是,它似乎没有遵循我稍后设置的will($ this-> returnValue('myValue'))部分.
public function testConstruct()
{
$foo = $this->getMockForAbstractClass('Foo', array('getA', 'getB'));
$foo->expects($this->any())->method->('getA')->will($this->returnValue('a'));
$foo->expects($this->any())->method->('getB')->will($this->returnValue('b'));
$copyClass = get_class($foo);
$copy = new $copyClass();
// Passes
$this->assertTrue(method_exists($copy, 'getA');
// Fails, $copy->getA() returns null.
$this->assertEquals($copy->getA(), $foo->getA());
}
Run Code Online (Sandbox Code Playgroud)
因此,它确实具有被模拟的函数,但它们都返回null.
有任何想法吗?
常规 Spring (Boot) 是否有办法进行全局异常处理,或者至少可以捕获任何未捕获的异常(例如RuntimeException可能随机发生的异常)?
我已经用谷歌搜索过,但我发现的所有内容都谈到了@ControllerAdvice @ExceptionHandlerfor 控制器。与一般的全局异常处理程序无关。
我基本上只是想确保如果发生一些我尚未捕获的异常,我会记录它以便我知道它。
我正在尝试使用语音识别API创建一个支持HTML5的语音控制编辑器.目前,问题是当你开始录音时,它只会持续一段时间(基本上直到用户停止说话).
我可以设置continuous和interimResults到true,但并不把它永远记录.它仍然结束.
我也可以告诉它在结束活动期间重新开始,但随后它每次都要求许可,这是非常具有破坏性的.
有没有办法允许它连续进行而只需要询问用户一次?
有没有可以采用这样的.vue模板的工具:
<template>
<div>Hello, {{ thing }}</div>
</template>
<script>
export default {
data() { return { thing: 'World' }; }
}
</script>
<style>
div { background: red; }
</style>
Run Code Online (Sandbox Code Playgroud)
并将其转换为.js文件,如下所示:
export default {
template: `
<div>Hello {{ thing }}</div>
`,
data() {
return {
thing: 'World'
}
}
}
Run Code Online (Sandbox Code Playgroud)
(不确定它对CSS有什么魔力,但它会做点什么.)
我正在尝试使用本机浏览器模块,它运行良好,但我想使用.vue文件语法,因为它提供了一些不错的东西.我想避免使用像Webpack或Browserify这样的捆绑器.
我正在使用巴别塔.我有transform-vue-jsx插件,但无法处理.vue格式,只能转换JSX.
javascript ×3
java ×2
php ×2
spring ×2
yaml ×2
babel ×1
css ×1
css-calc ×1
css3 ×1
gitlab-ci ×1
html5 ×1
html5-audio ×1
mocking ×1
node.js ×1
npm ×1
npm-install ×1
phpunit ×1
spring-boot ×1
symfony ×1
tomcat ×1
unit-testing ×1
vue.js ×1