小编phi*_*ipp的帖子

docker-compose——仅在开发中绑定挂载卷

我有一个docker-compose.yml这样的:

\n\n
version: '2'\nservices:\n  backend:\n    build:\n      context: .\n    volumes:\n      - .:/home/ll/stuff\n    ports:\n      - '8000:80'\n
Run Code Online (Sandbox Code Playgroud)\n\n

这总是会增加数量,这对开发有利,但对生产不利。有没有办法让 \xc2\xbbtell\xc2\xabdocker-compose仅在开发中挂载该卷,或者换句话说,如果APP_ENV为空或==development

\n\n

我需要为此创建另一个撰写文件吗?如果是这样,我可以使用生产文件中的配置,而不重复不改变的内容吗?

\n

docker-compose

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

XPATH——由查询定义的结果顺序

我有一个像这样的 xpath 表达式:

\n\n

element[@attr="a"] | element[@attr="b"] | element[@attr="c"] | \xe2\x80\xa6这是一个 \xc2\xbbor\xc2\xab 语句。那么,我是否可以创建一个表达式来保证结果按照查询中的顺序出现,即使元素在文档中以不同的顺序出现?

\n\n

fe 按以下顺序创建文档片段:

\n\n
<doc>\n    <element attr="c" />\n    <element attr="b" />\n    <element attr="a" />\n    .\n    .\n    .\n</doc>\n
Run Code Online (Sandbox Code Playgroud)\n\n

结果列表排序如下:

\n\n
[0] <element attr="a" />\n[1] <element attr="b" />\n[2] <element attr="c" />\n.\n.\n.\n
Run Code Online (Sandbox Code Playgroud)\n

xpath

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

React-Router-在运行时添加/删除路由

我有一个支持每个用户特权的应用程序。因此,如果用户必须获得适当的许可,他就可以管理用户,组等。如果用户没有这样的许可,他可能不会这样做。

我有一个rest api,带有一个端点,返回当前用户的所有允许的链接,并且我想为此设置路由react-router。如果权限被编辑,例如,用户放开了编辑用户的权限,则相应的菜单项应从菜单中消失,而路由将从路由器中删除。否则,应添加菜单项和路线。

现在我有这个设置:

ReactDOM.render(
  <Provider store={store}>
    <Router history={history}>
      <Route path="/" component={Window}>
        <IndexRoute component={Users} />
        <Route path="users" component={Users} />
        <Route path="groups" component={Groups} />
        <Route path="permissions" component={Permissions} />
        <Route path="*" component={Error} />
      </Route>
    </Router>
  </Provider>, mount);
Run Code Online (Sandbox Code Playgroud)

但我真正希望拥有的是:一个动态执行此设置并可以在每次更改权限时运行的函数。

我找不到关于此的任何文档,如果能做到这一点,我将感到高兴。

更新

根据给出的答案和评论,我意识到我想解决这个问题的方法并不符合react-router的声明性。

reactjs react-router redux react-redux react-router-redux

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

gpg — 仅将内容直接解密到标准输出

secret.txt.gpg我有要解密的文件,以便内容存储在如下变量中:

\n
TXT=$(gpg --decrypt secret.txt.gpg)\n
Run Code Online (Sandbox Code Playgroud)\n

但这样会添加很多额外的gpg: \xe2\x80\xa6行,其中包含有关密钥等的信息,如下所示:

\n
gpg: encrypted with 4096-bit RSA key, ID xxxx, created xxxx\n  "xx xx (xx) <xx@xx.xx>"\ngpg: Signature made xxx\ngpg:                using RSA key xxx\n\xe2\x80\xa6\nSecret Message\n
Run Code Online (Sandbox Code Playgroud)\n

顺便一提:

\n
gpg -d secret.txt.gpg > out.txt\n
Run Code Online (Sandbox Code Playgroud)\n

只是将内容写入文件。

\n

如何仅捕获内容而不将其写入文件?

\n

更新

\n

尽管@Roger的答案更好并解释了原因,但我可以使用以下方法来实现:

\n
TXT=$(gpg --decrypt secret.txt.gpg > /dev/stdout)\n
Run Code Online (Sandbox Code Playgroud)\n

bash gnupg

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

使用不带 canvas 和 paperscript 的 paper.js

我希望不要提出一个已经回答的问题,但我在任何地方都找不到有用的东西。我正在评估 2d 矢量图形和动画的 javascript 库。在我的路上,我发现了 paper.js,但无法将它与 type="text/javascript" 一起使用,没有画布等。在 paper.js 关于这一点的常见问题解答中,发现它可能有效,但目前我无法让它工作。

如果有人有这方面的经验,很高兴让我知道这一点。

javascript 2d

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

将include的内容保存在变量中

我有一个树枝模板,用于batch()制作类似这样的列:

{% set rows = collection|batch(3) %}
Run Code Online (Sandbox Code Playgroud)

如此处所述:http : //twig.sensiolabs.org/doc/filters/batch.html此函数采用第二个参数来定义用于“缺少”元素的字符串。

我正在寻找类似的东西:

{% set html = include 'path/to/file.html.twig' %} <-- parse error
{% set rows = collection|batch(3, html) %}
Run Code Online (Sandbox Code Playgroud)

有没有办法做到这一点,或者我可以/应该做些其他事情?

twig

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

要在RegExp中使用的Java转义字符串

我对Java有点新意,所以我只是不确定我是否在做他们应该做的事情.我正在开发一个程序,更多的是用于学习Java的目的,并且被认为是用于命令行的.其中一个功能应该是一种搜索替代.

从命令行启动程序,如下所示:

java -jar pro.jar -s ${ftp://www.stuff.com} -r foo
Run Code Online (Sandbox Code Playgroud)

意思是:搜索确切的字符串${ftp://www.stuff.com}并将其替换为foo.我想用Regexp进行搜索,所以我必须在搜索字符串中转义转义字符($,(,{,},\,...).

${ftp://www.stuff.com} --> \$\{ftp:\/\/www\.stuff\.com\}
Run Code Online (Sandbox Code Playgroud)

因此我写了这个函数:

private static Pattern getSearchPattern()
{
    String searchArg = cli.getOptionValue( "s" ).trim();
    StringBuffer escapedSearch = new StringBuffer();
    Pattern metas = Pattern.compile( "([\\.\\?\\*\\{\\}\\[\\]\\(\\)\\^\\$\\+\\|\\\\])" );
    Matcher metaMatcher = metas.matcher( searchArg );

    while( metaMatcher.find() )
    {
        metaMatcher.appendReplacement(escapedSearch, "\\\\\\\\$0" );
    }
    metaMatcher.appendTail( escapedSearch );

    return Pattern.compile( escapedSearch.toString() );
}
Run Code Online (Sandbox Code Playgroud)

总而言之,这是有效的,但有很多反斜杠.这是否逃脱了所有的metachrackters?这是一个"强大"的解决方案吗?

java regex

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

如何从Bash中的文件名中删除前导破折号

我有一个目录,其中包含以下文件:

-001.jpg
-002.jpg
...
-100.jpg
Run Code Online (Sandbox Code Playgroud)

我想删除每一个的主要短划线.

我试过了:

rename -vn 's/^-//g' *
Run Code Online (Sandbox Code Playgroud)

但我得到:

Unknown option: 0
Unknown option: 0
Unknown option: 0
Unknown option: .
Unknown option: j
Unknown option: p
Unknown option: g
Unknown option: 0
Unknown option: 0
Run Code Online (Sandbox Code Playgroud)

等等......

一个人怎么玩这个伎俩?

bash rename

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

redux-form-复选框数组

我有一个Redux表单,它可以正常工作,除了一件事:我需要创建一个复选框数组,以便用户可以在多个选项之间进行选择。

在HTML / PHP中,可以这样写:

<form>
    …
    <input type="checkbox" name="item[]" value="120" />
    <input type="checkbox" name="item[]" value="231" />
    …
</form>
Run Code Online (Sandbox Code Playgroud)

因此,在服务器端,将收到一个这样的数组(假设选中了每个复选框):,其中数组$item = [120, 231]中的每个项目都对应于复选框的值。

用redux形式做同样的事情:

let items = [{name:…, value:…}, …];

<form>
  {items.map(item => {
    <Field component="input" 
           type="checkbox"
           name={item.name + '[]'} 
           value={item.value}
  })}
</form>
Run Code Online (Sandbox Code Playgroud)

结果是输入:<input type="checkbox" name="item[]" value="true" />,这不是我期望的。另外,选中复选框,检查每个阵列。

所以我将的名称属性更改<Field />

name={`item[${item.value}]`}
Run Code Online (Sandbox Code Playgroud)

是什么使复选框能够按预期工作,但又导致提交时产生该数据:

 {
           //index: 0,   1,     ,…, 120, 121, …    ,231, …                      
     item: [undefinded,undefined,…,true,undefined,…,true,undefined,…]
 }
Run Code Online (Sandbox Code Playgroud)

所以我的问题是:创建复选框(特别是其名称)是否错了,还是必须在初始化时一次提交一次数据时转换数据?

如果我必须转换数据,那最好的地方在哪里?

reactjs redux-form

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

&lt;input type="color" /&gt; — 用 js 打开颜色选择器

我已经得到了:

<span class="opener">Open</span>
<input type="color" class="btn-invisible" />
Run Code Online (Sandbox Code Playgroud)

我想使用 JS 打开该字段的颜色选择器。我努力了:

document.querySelector('span.opener')
  .addEventListener('click', 
    e => document.querySelector('.btn-invisible').focus()
  );
Run Code Online (Sandbox Code Playgroud)

但这不会打开颜色选择器。如果用JS可以实现的话,怎么实现呢?

javascript input

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