小编Dav*_*nan的帖子

如何在没有符号链接的情况下安装纱线工作区包?

我有一个纱线工作区项目,它看起来像这样:

node_modules
packages
  shared
    test.js
    package.json
  client
    test.js
    package.json
  server
    test.js
    package.json
package.json
server.Dockerfile
Run Code Online (Sandbox Code Playgroud)

如您所见,我有一个server.Dockerfile,它构建了一个服务器映像,我可以将其推送到不同的托管服务提供商,例如 Heroku 或 AWS。

我复制packagespackage.json进入这个容器:

COPY packages packages
COPY package.json .
Run Code Online (Sandbox Code Playgroud)

然后我只安装server包的依赖项:

RUN cd packages/server && yarn install
Run Code Online (Sandbox Code Playgroud)

所有依赖项现在都在node_modules文件夹中,接下来我想做的是删除packages文件夹以从 docker 映像中删除任何不必要的代码(例如客户端代码):

RUN rm -rf packages
Run Code Online (Sandbox Code Playgroud)

问题在于node_modules文件夹内的所有纱线工作区包只是到packages文件夹的符号链接......所以我无法删除该文件夹。

  • 如何yarn install复制纱线工作区包而不是创建符号链接?

  • 或者,是否有另一种方法可以删除所有未使用的代码(例如客户端代码),以便我的 docker 图像不会膨胀?

yarnpkg yarn-workspaces

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

SSH主机密钥验证在GitLab CI中失败

本地设置

我通过ssh-keygen命令创建了公共和私有SSH密钥。

我决定先在本地设置私钥,然后再在我的仓库的gitlab CI上进行设置。

我在服务器上设置了公共密钥(在这种情况下,是另一个gitlab存储库,但是将来可能会更改,因此不会影响该问题)。

我已通过以下命令在本地与服务器成功通信(在这种情况下,我正在通过SSH使用SSH git,但将来可能会再次更改):

git clone git@gitlab.com:...../......git
Run Code Online (Sandbox Code Playgroud)

亚搏体育app CI设置

然后,我决定在gitlab CI上设置私钥和通信。

在我的仓库中,我导航到“设置->连续集成->变量”,并添加了以下环境变量:

  • SSH_DEPLOY_PRIVATE_KEY -我曾经使用与本地相同的私钥
  • SSH_KNOWN_HOSTS
    • gitlab.com从本地计算机的~/.ssh/known_hosts文件中获取了已知主机
    • gitlab.com,35.231.145.151 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBFSMqzJeV9rUzU4kWitGjeR4PWSa29SPqJ1fVkhtj3Hw9xjLVXVYrU9QlYWrOLXBpQ6KWjbjTDTdDkoohFzgbEY=

然后,我在内部设置SSH .gitlab-ci.yml

script:
  - apt-get install openssh-client -y
  - eval $(ssh-agent -s)
  - echo "$SSH_DEPLOY_PRIVATE_KEY" | tr -d '\r' | ssh-add - > /dev/null
  - mkdir -p /.ssh && touch /.ssh/known_hosts
  - echo "$SSH_KNOWN_HOSTS" >> /.ssh/known_hosts
  - mkdir -p ~/.ssh
  - chmod 700 ~/.ssh
Run Code Online (Sandbox Code Playgroud)

这似乎工作正常,我收到以下消息: Identity …

ssh gitlab gitlab-ci

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

钱包连接:没有可用于 chainId 的 RPC Url:137

在此输入图像描述

我正在尝试创建一个WalletConnect提供商。

我正在使用@walletconnect/web3-provider包以及Web3Modal作为 UI。

我正在WalletConnectProvider使用我的Infura客户端 ID进行实例化

let web3Modal = new Web3Modal({
    network: "matic",
    cacheProvider: true,
    providerOptions: {
        walletconnect: {
            package: WalletConnectProvider,
            options: {
                infuraId: "c22c90a767684c5fbd7257da57802b35" ,
            },
        },
    },
});

web3Modal.clearCachedProvider();
await web3Modal.connect();
Run Code Online (Sandbox Code Playgroud)

当我运行应用程序并连接钱包时,出现以下错误:

Error: No RPC Url available for chainId: 137
Run Code Online (Sandbox Code Playgroud)

我正在尝试连接到Polygon 网络(即chainId 137)。

Infura 似乎确实支持 Polygon 主网链。

另外,我将此链添加到我的 MetaMask 移动钱包中,这是我连接到 WalletConnect 时使用的钱包。

所以它应该有效..

任何想法如何解决这一问题?

javascript ethereum matic wallet-connect

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

如何将png图像数据的数组转换为视频文件

我从收到的帧canvas通过canvas.getDataURL().

但是,现在我有一系列png图像,但我想要一个视频文件.

我该怎么做呢?

var canvas = document.getElementById("mycanvaselementforvideocapturing");
var pngimages = [];
...
setInterval(function(){pngimages.push(canvas.toDataURL())}, 1000);
Run Code Online (Sandbox Code Playgroud)

javascript canvas todataurl web-mediarecorder mediarecorder-api

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

替代绝对定位以更新父母身高的方法

我正在图书馆画括号。

我正在使用JavaScript计算每个元素(匹配和线条)的坐标。每个元素都有position: absolute;和使用lefttop来设置它们的xy坐标。

因为我正在使用,position: absolute;所以必须将父级设置为,以position: relative;使子级相对于其父级定位。

在此处输入图片说明

直到我注意到父母的身高没有从孩子的身高开始更新,这才算完美,因为position: absolute;元素是从文档流中删除的。

我需要父级具有高度,以便可以在下面放置其他元素,并给出父级样式,例如background-color...

  1. 除了使用x和y坐标的绝对定位之外,还有其他替代方法可以将其保留在文档流中以允许父级widthheight自动调整吗?

  2. 或者,如果不可能的话,可以使用香草javascript(没有jQuery或其他库)来查找父div内容的宽度和高度。如果可能的话,我可以通过javascript 设置父代widthheight样式。

到目前为止我尝试过的

  1. 我试图让孩子们选择position: relative;position: absolute;如果您只有一个孩子,我相信可以代替他们工作。但是,如果有一个以上的孩子,则这些孩子不是相对于父母,而是现在相对于前一个孩子,这使事情变得混乱。

在此处输入图片说明

  1. 即使父级没有高度,页面上仍然有一个垂直滚动条。使用JavaScript,我试图让scrollHeightheight等元件documentdocument.bodywindow。这不起作用,因为undefined结果是错误的或结果错误的。

现在,我的临时解决方案是将body高度设置为2500px应该达到的最高高度。问题在于,总会有一个滚动条,大多数情况下滚动到无。

<div class="BrackChart_wrapper">
    <div class="BrackChart_match"> ... </div>
    <div class="BrackChart_line"></div>
    etc.
</div>

.BrackChart_wrapper {
    position: …
Run Code Online (Sandbox Code Playgroud)

html javascript css

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

Python - 如何获取发送方套接字的端口(UDP)

如果我有一个像这样的 UDP 套接字:

import socket
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
Run Code Online (Sandbox Code Playgroud)

并且套接字可以发送数据:

sock.sendto("message", address)
Run Code Online (Sandbox Code Playgroud)

如何找到套接字的端口 - 发送数据时使用的端口address

编辑:我尝试过sock.getsockname(),但这会引发错误:[Errno 10022] An invalid argument was supplied

python sockets udp

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

带扩展名的 TypeScript 导入

您可能听说过 Deno,它是一个新的 TypeScript 运行时。

Deno 和普通 TypeScript 之间的一个主要区别是您必须在 import 语句中包含文件扩展名。例如:

import foo from './bar.ts'
                       ^^
Run Code Online (Sandbox Code Playgroud)

我想编写与 Deno 和 Webpack 兼容的代码。

如何配置 Webpack 以允许使用.ts上述扩展名进行导入?

另外,如何防止以下 VSCode 错误?

在此输入图像描述

typescript webpack deno

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

Pkg 快照文件夹

Pkg CLI将 node.js 应用程序打包成可执行文件。

在运行时,应用程序应访问全局/snapshots/文件夹(或C:\snapshots\在 Windows 上)中的资源。

  • 这是否意味着Pkg由于共享一个快照目录而只能同时运行一个应用程序?
  • 这是否会使程序需要 admin/sudo 权限?
  • 如果快照目录已经存在并且正在用于其他内容,会发生什么情况?
  • 他们为什么决定建立一个全球目录?
  • 有没有办法不使用这个目录?

我找不到这方面的任何信息,而且似乎不对......

zeit-pkg

5
推荐指数
0
解决办法
1489
查看次数

为什么 JavaScript 有默认导出?

语境

JavaScript 有两种类型的导出:正常[1]和默认。

编辑:JavaScript 有两种类型的导出语法

正常出口

class Foo {...}
class Bar {...}

export {
  Foo,
  Bar,
};
Run Code Online (Sandbox Code Playgroud)

或者

export class Foo {...}
export class Bar {...}
Run Code Online (Sandbox Code Playgroud)

普通导出可以通过两种方式导入:命名空间[1]导入和命名导入(看起来类似于解构)。

命名空间导入

import * as Baz from './baz';
Run Code Online (Sandbox Code Playgroud)

命名导入

import {Foo, Bar} from './baz';
Run Code Online (Sandbox Code Playgroud)

默认导出

class Foo {...}
class Bar {...}

export default {
  Foo,
  Bar,
};
Run Code Online (Sandbox Code Playgroud)

默认导出也可以通过两种方式导入:名称空间导入和命名导入(以一种黑客方式在单独的语句中使用解构)

命名空间导入

import Baz from './baz';
Run Code Online (Sandbox Code Playgroud)

命名导入

import temp_Baz from './baz';
const {Foo, Bar} = temp_Baz;
Run Code Online (Sandbox Code Playgroud)

问题

普通导出和默认导出都具有相同的功能 - 它们可以导入到命名空间中,并且可以解构为更小的部分。

1) …

javascript es6-modules

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

Svelte 构建初始渲染到 index.html 文件

我决定在我的下一个网站上试用 Svelte,这将是一个使用 GitLab 页面托管的静态网站。

我得到了生成dist/bundle.jsdist/bundle.css.

问题是我无法上传此dist文件夹,因为没有index.html文件。

如何让 Svelte/rollup 生成index.html包含初始渲染的文件?


另一种选择是创建我自己的index.html文件并导入bundle.js. 这对我来说不是一个选择,因为初始渲染现在是通过 javascript 而不是在编译时在运行时生成的,这可能会对 SEO 产生负面影响并阻止没有 javascript 的用户至少看到一些东西。


我也在看 Sapper,它进行服务器端渲染,据我所知,它在服务器端进行初始渲染。但是,这似乎需要您拥有服务器而不是渲染到文件,并且对于静态单页网站来说似乎过于复杂。

html javascript svelte sapper

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