小编dan*_*nvk的帖子

使用CSS垂直居中旋转文本

我有以下HTML:

<div class="outer">
    <div class="inner rotate">Centered?</div>
</div>
Run Code Online (Sandbox Code Playgroud)

div.outer是一个狭窄的垂直条带.div.inner旋转90度.我想文字"居中?" 显示在其容器div中居中.我事先不知道div的大小.

这很接近:http://jsfiddle.net/CCMyf/2/.你可以从jsfiddle看到文本在transform: rotate(-90deg)应用样式之前是垂直居中的,但在之后有些偏移.这在div.outer短时间内尤其明显.

是否可以在不事先知道任何尺寸的情况下垂直居中这个文本?我没有找到任何transform-origin解决这个问题的价值观.

css vertical-text vertical-alignment css3 centering

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

如何结合解构赋值和可选链?

我有一个带有一些可选字段和该类型变量的 TypeScript 接口:

interface Foo {
    config?: {
        longFieldName?: string;
    }
}

declare let f: Foo;
Run Code Online (Sandbox Code Playgroud)

我想放入longFieldName一个同名的变量。

如果config不是可选的,我会使用解构赋值来做到这一点而不重复longFieldName. 但确实如此,所以我收到了一个类型错误:

const { longFieldName } = f.config;
     // ~~~~~~~~~~~~~  Property 'longFieldName' does not exist on type '{ longFieldName?: string | undefined; } | undefined'.
Run Code Online (Sandbox Code Playgroud)

我可以使用可选链接来简洁地处理这种undefined情况:

const longFieldName = f?.config.longFieldName;  // OK, type is string | undefined
Run Code Online (Sandbox Code Playgroud)

但现在我要重复一遍longFieldName

我可以吃蛋糕也吃吗?我可以使用可选链来处理这种undefined情况而不重复longFieldName吗?如果没有,最简洁/惯用的解决方法是什么?请参阅游乐场链接

javascript typescript optional-chaining

25
推荐指数
2
解决办法
6701
查看次数

如何使用Flask提供NPM包?

我有一个小的Flask应用程序,它目前从外部服务器获取jQuery和highlight.js.我想通过NPM来创建这些本地依赖项.

这是什么标准做法?我应该package.json在与我statictemplates目录相同的目录中创建文件,并node_modules作为一个单独的静态目录这个问题吗?

我正在使用包装和分发我的应用程序pip,因此任何解决方案都需要与之兼容.

python pip node.js flask npm

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

gcloud码头推挂

当我尝试将新的docker图像推送到gcr.io使用时gcloud docker push,它经常在停止之前取得一些进展:

$ gcloud docker push gcr.io/foo-bar-1225/baz-quux:2016-03-23
The push refers to a repository [gcr.io/foo-bar-1225/baz-quux]
762ab2ceaa70: Pushing [>                                              ]   556 kB/154.4 MB
2220ee6c7534: Pushing [===>                                           ]  4.82 MB/66.11 MB
f99917176817: Layer already exists
8c1b4a49167b: Layer already exists
5f70bf18a086: Layer already exists
1967867932fe: Layer already exists
6b4fab929601: Layer already exists
550f16cd8ed1: Layer already exists
44267ec3aa94: Layer already exists
bd750002938c: Layer already exists
917c0fc99b35: Layer already exists
Run Code Online (Sandbox Code Playgroud)

推送无限期地保持在这种状态(我已经离开它一小时而没有一个字节的进展).如果我按Ctrl-C终止此进程并重新运行它,它将完全相同,并再次没有进展.

我发现的唯一解决方法是重新启动计算机并重新运行"Docker Quickstart Terminal".然后推动成功.

是否存在停滞推送的解决方法,不需要经常重启我的计算机?(我在Mac OS X上.)

docker gcloud google-kubernetes-engine google-container-registry

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

Three.js 中的 Raycast 只有一个投影矩阵

我正在按照此示例在 Mapbox GL JS 页面中使用 Three.js 渲染一些自定义图层。我想添加光线投射来确定用户点击了哪个对象。

问题是我只从 Mapbox 获得了一个投影矩阵,我用它来渲染场​​景:

class CustomLayer {
  type = 'custom';
  renderingMode = '3d';

  onAdd(map, gl) {
    this.map = map;
    this.camera = new THREE.Camera();
    this.renderer = new THREE.WebGLRenderer({
      canvas: map.getCanvas(),
      context: gl,
      antialias: true,
    });
    this.scene = new THREE.Scene();
    // ...
  }

  render(gl, matrix) {
    this.camera.projectionMatrix = new THREE.Matrix4()
      .fromArray(matrix)
      .multiply(this.cameraTransform);
    this.renderer.state.reset();
    this.renderer.render(this.scene, this.camera);
  }
}
Run Code Online (Sandbox Code Playgroud)

这渲染得很好,并在我平移/旋转/缩放地图时跟踪视图中的变化。

自由岛上的立方体

不幸的是,当我尝试添加光线投射时,出现错误:

  raycast(point) {
    var mouse = new THREE.Vector2();
    mouse.x = ( point.x / this.map.transform.width ) * …
Run Code Online (Sandbox Code Playgroud)

three.js raycasting mapbox-gl-js

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

是否可以将Harmony(ES6)与JSXTransformer.js一起使用?

我很幸运使用React的JSXTransformer.js在浏览器中使用JSX进行开发:

<script src="http://fb.me/JSXTransformer-0.11.1.js"></script>
<script type="text/jsx">
/** @jsx React.DOM */
...
</script>
Run Code Online (Sandbox Code Playgroud)

为了减少样板,我想使用Harmony的一些功能,例如箭头功能.Facebook的JSX编译器服务有一个和声复选框,可以将ES6转换为更传统的JS:

var f = v => this.props[v];
// becomes var f = function(v) { return this.props[v]; }.bind(this);
Run Code Online (Sandbox Code Playgroud)

是否可以使用浏览器内JSX启用此转换?

javascript ecmascript-harmony reactjs

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

Flow的"JQuery接口文件"(来自Facebook的JavaScript静态类型检查器)?

在2014年11月,3个月前,Facebook开源了一个新的命令行工具,一个名为" Flow " 的静态类型检查器.现在我想在一些旧的现有javascript文件上运行它.这些包含对jQuery库的引用.

我的JS文件不是用静态类型检查编写的.但是,在文件顶部包含/*@flow*/之后,当我使用此命令运行flow时:

flow myfile.js 
Run Code Online (Sandbox Code Playgroud)

结果:

/var/www/myfilejs:70:12,17: identifier jQuery
Unknown global name
Found 1 error
Run Code Online (Sandbox Code Playgroud)

据我了解,将jQuery包含在Flow的类型检查过程中的方法是创建一个"接口文件".

有人为jQuery库做过这个吗?(我使用jQuery 1.9)

javascript jquery facebook typechecking flowtype

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

使用 Identity-Aware Proxy (IAP) 从 Google Cloud Storage 存储桶提供内容

我在 GCS 存储桶中有一些内容:

$ gsutil ls gs://my-bucket
index.html
Run Code Online (Sandbox Code Playgroud)

我想使用 Identity-Aware Proxy (IAP) 在 OAuth 后面提供此服务。我正在遵循这些说明

我已经创建了一个负载均衡器和“后端存储桶”,如下所示:

负载均衡器配置

但是,在 Identity-Aware Proxy 页面上,我没有看到我的负载均衡器列出:

身份感知代理页面

是否可以将 IAP 与后端存储桶一起使用?

google-cloud-storage google-cloud-platform google-iap

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

Google Container Engine实例是否可通过DNS访问?

Google AppEngine应用程序可通过DNS在可预测的位置自动访问(appname.appspot.com).Google Container Engine实例也是如此吗?

为GKE实例提供公共IP很简单,但如果您想共享演示链接(不必担心它们会改变)或使用Google OAuth(不允许使用静态IP作为回调URL),这种方法效果不佳.

我可以使用Google Cloud DNS注册域并配置子域以指向每个容器引擎实例的IP.但如果GKE已经这样做会更简单!

google-kubernetes-engine

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

在sequelize和pg之间共享数据库连接池

我有一个服务器,我用Express和node-postgres(pg)编写.它创建自己的数据库池:

const dbPool = new pg.Pool(dbConfig);
Run Code Online (Sandbox Code Playgroud)

并使用此连接直接运行SQL查询.

现在我正在添加一个新表和相应的REST API.我想用sequelizeepilogue来减少样板.不幸的是,sequelize想要创建自己的数据库连接池:

const sequelize = new Sequelize(database, user, password, config);
Run Code Online (Sandbox Code Playgroud)

是否可以重用现有的连接池,或者在现有pg代码和新sequelize代码之间共享?

postgresql node.js sequelize.js

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