小编Sho*_*orn的帖子

Unicode基本多语言平面是否足以供CJK扬声器使用?

问题:"仅支持Unicode BMP足以使中国本土/日本/韩国使用者能够以其母语使用应用程序吗?"

我现在最关心的是日语使用者,但我也对中国人的答案感兴趣.如果某个应用程序仅支持BMP上的字符 - 是否会使该应用程序无法用于中文/日语(即应用程序不允许数据输入/显示补充字符)?

我不是问BMP是否是你需要的任何类型的应用程序(显然不是 - 特别是对于整个世界的所有语言).我要求CJK发言人,在专业背景下,一个现代的普通应用程序,处理一般的自由文本输入(包括名称,地点等) - BMP一般是否足够?

即使只支持BMP是不正确的 - 它会非常接近/"足够好"吗?在应用程序中缺少补充字符只是偶尔的轻微不便; 或者,例如,日本发言人会认为该申请完全破裂了吗?特别是考虑到他们总能通过平假名/片假名拼出有问题的单词来解决问题?

对于那些没有后备选项的中国人来说,缺少补充字符会被视为停止显示问题吗?

我在这里考虑一般的专业背景 - 不是社交或游戏的东西.作为一个例子,在补充平面上有很多表情符号 - 但我个人不会认为不支持Unicode表情字符的英语应用程序被"破坏",至少对于大多数专业用途而言.

我正在处理的应用程序是用Java编写的,但我认为这个问题更普遍适用.知道答案也将帮助我(无论语言)更好地处理我在字体支持方面需要付出多少努力.


编辑

澄清:通过"仅支持BMP" - 我打算应用程序优雅地处理补充字符.
不受支持的字符(包括BMP代理代码块)的处理方式类似于大多数应用程序处理ASCII控制代码和其他不良字符的方式 - 过滤/禁止数据输入和"处理"以便显示(如果有必要)(过滤掉或替换为unicode替换字符).

unicode cjk

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

使用gradle-node-plugin或在节点配置中强制输入时,如何设置“ --max-old-space-size”?

我正在使用https://github.com/srs/gradle-node-plugin启动NPM任务,这是我的构建的一部分。

但是,Webpack现在堆空间不足,报告 FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory

我想不通告诉NpmTask将--max-old-space-size标志直接传递到节点的任何方法(将其放置在NpmTask args属性中的任何位置最终会将标志作为参数传递给npm脚本,该脚本将忽略它或传递给失败的webpack因为它不知道arg)。

我发现了这个github问题:https : //github.com/srs/gradle-node-plugin/issues/141,但它似乎只与NodeTask有关,与NpmTask没有关系。看着它,我认为NpmTask需要额外扩展options像NodeTask这样属性。

有没有一种全局配置“ node.js”方式,可以强制节点使用更多的堆空间,直到我弄清楚如何让NpmTask进行我想要的工作?

gradle node.js gradle-node-plugin

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

React 性能:什么是组件数量上限的好指南?

我正在使用 React、Bootstrap 和 Typescript。

我构建了一个列表/编辑屏幕,最多可以包含 200 行(100 个“列表”行和 100 个“详细信息”行)。每个“详细信息”行都包含一个完整的 HTML 表单——默认情况下它们是隐藏的(在 Bootstrap“折叠”组件内),直到用户开始编辑它们。

请注意,这是一个学习练习;在我开始看到性能问题之前,我试图了解在 UI 的复杂性方面我可以将 React 推多远。我不是专门为此页面寻找解决方案 - 我可以做很多 UX 事情,限制每页的行数,将详细信息拆分到自己的屏幕中,使用模式对话框等。

用户界面

列表和细节组件实现为“PureComponent”,涉及的状态对象都是不可变的 Typescript 对象(列表使用 Immutable.js 实现)。我估计大约有 1500 - 2000 个 React 组件参与渲染这个页面。

我对这个实现背后的代码复杂程度感到非常满意——它很容易阅读和更改,我相信在真正的应用程序中,随着复杂性随着时间的推移而增加,实现将保持可维护性。

但表现并不完全是我所希望的。我正在使用带有“?react_perf” URL 的 Chrome 性能选项卡测量此页面。
对于 100 个实体,Chrome 中的“用户计时”显示“表 [更新]”需要 60 - 90 毫秒。

表现

这似乎很长一段时间,我知道这些数字并不代表生产性能,因为我使用的是 React 的开发版本来进行性能计时。并且该应用程序在编译用于生产时确实表现更好 - 在相当标准的桌面企业机器或 iPhone6 上的性能还可以。如果你真的在寻找它,你可以看到延迟,但它几乎不明显。但是在较慢的硬件(三星 Galaxy 平板电脑和旧三星手机)上 - 延迟非常明显。

我试图了解我是否应该寻找主要错误/瓶颈,或者这是否与我应该对这么多组件期望的性能有关?

可能的改进:

  • 我能做的显而易见的主要事情是通过不渲染所有这些细节表单来减少 React 组件的数量,除非用户扩展实体
    • 这肯定会提高性能 - 表更新时间在开发中减少到大约 20 - 30 毫秒,几乎无法检测到,尤其是在生产中。
  • 人们不可避免地会建议使用 Redux
    • 如果我这样做,您希望看到什么样的性能提升?
    • 我的猜测是 Redux 实现实际上对性能没有太大作用(除非我犯了一些重大错误,Redux 会引导我避免)

所以问题是:

“React …

reactjs

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

SVG 元素的“enable-background”的正确结构是什么?

我使用 React w/ Typescript,使用“DefinitelyTyped”定义。我最近使用 v16.3.9 React 类型 ( @types/react) 从 React v16.0.0 升级到 v16.3.0。

我曾经让我的 SVG 元素看起来像这样,并enable-background作为样式属性:

import * as React from "react"

export class CaretSvgRight
extends React.PureComponent<React.SVGProps<SVGElement>, object> {

  render(){
    return <svg 
      style={{"enable-background":"new 0 0 292.359 292.359"}}
      {...this.props}            
    >
      <path d="..."/>
    </svg>
  }
}
Run Code Online (Sandbox Code Playgroud)

使用新的类型,我必须将SVGSVGElementSVGProps 类型的目标更改为看起来很奇怪的类型,这需要我将enable-background属性移动到关卡上SVG

import * as React from "react"

export class CaretSvgRight
extends React.PureComponent<React.SVGProps<SVGSVGElement>, object> {

  render(){
    return <svg 
      enableBackground="new 0 0 292.359 292.359"
      {...this.props}            
    >
      <path …
Run Code Online (Sandbox Code Playgroud)

css svg typescript definitelytyped reactjs

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

Typescript:为什么 Material-UI“withStyles()”不能使用显式构造函数?

编辑:

请注意,IntelliJ IDEA 生成了不正确的构造函数。此问题现已修复,请参阅:https ://youtrack.jetbrains.com/issue/WEB-35178


我正在考虑在我的应用程序中使用 Material-UI,但在与 TypeScript 结合使用样式解决方案时遇到了一些问题withStyles

我正在尝试根据Popper 文档制作自己的小包装组件。

问题是,如果我按照我习惯的方式显式定义构造函数((B)在下面的代码中),那么这一行:

export default withStyles(styles)(HelpComponent);
Run Code Online (Sandbox Code Playgroud)

给出这个错误:

ERROR in [at-loader] ./src/main/ts/screen/keyword/HelpComponent.tsx:150:35 
    TS2345: Argument of type 'typeof HelpComponent' is not assignable to parameter of type 'ComponentType<never>'.
  Type 'typeof HelpComponent' is not assignable to type 'StatelessComponent<never>'.
    Type 'typeof HelpComponent' provides no match for the signature '(props: never, context?: any): ReactElement<any> | null'.
Run Code Online (Sandbox Code Playgroud)

我能够完成这项工作的唯一方法是省略显式构造函数并将状态定义为字段((A)在下面的代码中)。

当我使用时,有没有办法以正常方式声明构造函数withStyles

实际上我不介意像这样直接设置状态,它的样板代码要少一些。通过这种方式在构造函数外部初始化状态,我是否会放弃任何东西?

最终,我只是不明白 TypeScript 错误消息 - 谁能解释它想说什么?

import { …
Run Code Online (Sandbox Code Playgroud)

typescript reactjs material-ui

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

如何使用create-react-app 3.1.0 eslint定制?

编辑:这是3.1.0中的错误-升级到3.1.1+以获取此功能的有效版本。


create-react-app 3.1.0应该支持自定义eslint警告,如下所示:https : //github.com/facebook/create-react-app/pull/7036

文档在这里:https : //facebook.github.io/create-react-app/docs/setting-up-your-editor#experimental-extending-the-eslint-config

我相信我package.json中的规则设置是正确的,因为IDEA会选择它,并且不再在编辑器中放置点位置警告。

npm start仍然抱怨:

./src/Auth/AuthenticationProvider.tsx
  Line 135:  Expected dot to be on same line as property  dot-location
Run Code Online (Sandbox Code Playgroud)

package.json是根据文档,并且我已将EXTEND_ESLINT变量添加到.env文件中。

我的package.json配置:

"eslintConfig": {
  "extends": [
    "react-app"
  ],
  "rules": {
    "dot-location": "off"
  }
},
Run Code Online (Sandbox Code Playgroud)

环境变量已在我的.env文件中设置。

例如没有源代码的样子:

   props.auth0Client.loginWithRedirect().
      catch((e)=>{errorHandler(e)});
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

我是不是误解了eslintconfig的工作方式,或者我对create-react-app的这个新功能实际上应该做的事情是错误的?

请注意:我不想到处添加注释到我的代码来禁用警告-问题是关于自定义eslint配置。

eslint create-react-app

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

JOOQ:将列标记为“已弃用”?

我想以某种方式将模式中的列标记为“已弃用”(可能是列注释中的某种标记或其他内容),然后让该信息通过代码生成过程冒泡,以导致添加@Deprecated注释到生成的代码中该列的字段/方法。

JOOQ有相关的功能吗?
浏览用户手册似乎没有显示任何相关内容。

jooq

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

AWS Log Insights:指定@timestamp字段输出格式/时区?

fields @timestamp当我在 Cloudwatch“日志见解”查询中使用时,它会向结果表中添加一列,该列的格式设置为我的本地时区,例如2020-07-01T05:52:15.840+10:00.

我不希望它进行本地时区转换,我希望该列以 UTC 时区显示。

如何告诉“log Insights”以 UTC 时区显示日期?

amazon-web-services amazon-cloudwatch aws-cloudwatch-log-insights

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

在 Alpine 上安装 awscli - 如何修复“ModuleNotFoundError: No module named 'six'”

语境

我有一个基于postgres:11-alpine过去工作过的 dockerfile (可能是自上次构建以来的几个月),其定义如下:

FROM postgres:11-alpine

RUN apk update

# install aws cli
# taken from: https://github.com/anigeo/docker-awscli/blob/master/Dockerfile
RUN \
    apk -Uuv add groff less python py-pip && \
    pip install awscli && \
    apk --purge -v del py-pip && \
    rm /var/cache/apk/*
Run Code Online (Sandbox Code Playgroud)

我最近尝试在升级到 postgres 12 之前重建它,但图像构建失败:

 ERROR: unsatisfiable constraints:
              python (missing):
                required by: world[python]
Run Code Online (Sandbox Code Playgroud)

我猜python因为 YOLO ,包裹现在不见了?无论如何,我尝试python3通过将 docker 文件更改为:

RUN \
    apk -Uuv add groff less python3 py-pip && \
    pip install awscli && …
Run Code Online (Sandbox Code Playgroud)

python aws-cli alpine-linux

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

如何将 Node-fetch 与 Jest 和 Typescript 结合使用?

我正在尝试设置一个非常简单的 NPM 代码库,我可以用它来驱动 API 来进行一些测试。

\n

导致错误的代码行只是import fetch from "node-fetch";,请参阅代码

\n

对于设置/配置,我正在关注此存储库(建议使用更好的模板将不胜感激):https://github.com/bromix/typescript-jest-example

\n

node-fetch当我尝试在代码中使用该库(在目录test.ts中的文件/test或目录.ts中的文件中/src)时,出现以下错误:

\n
FAIL  test/Api.test.ts\n  \xe2\x97\x8f Test suite failed to run\n\n    Jest encountered an unexpected token\n\n    Jest failed to parse a file. This happens e.g. when your code or its dependencies use non-standard JavaScript syntax, or when Jest is not configured to support such syntax.\n\n...\n\n    Details:\n\n    C:\\ardc\\rats\\node_modules\\node-fetch\\src\\index.js:9\n    import http from \'node:http\';\n    ^^^^^^\n\n    SyntaxError: Cannot …
Run Code Online (Sandbox Code Playgroud)

typescript jestjs es6-modules node-fetch ts-jest

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