我想将我的应用程序从 monorepo 部署到 GAE。该应用程序依赖于我预先发布到 github 包的本地包。为了让生活变得轻松,我只是告诉我的应用程序始终获取最新版本:
"dependencies": {
"@thecointech/email": "*",
"@thecointech/logging": "*",
"@thecointech/utilities": "*",
...
Run Code Online (Sandbox Code Playgroud)
所有这些都运行良好。
yarn.lock当我尝试将该文件包含到部署中时,问题就出现了。按照此纱线线程中的建议:https://github.com/yarnpkg/yarn/issues/5428,我将本地根复制yarn.lock到应用程序目录并尝试部署。GAE 返回错误:
error Your lockfile needs to be updated, but yarn was run with `--frozen-lockfile`
Run Code Online (Sandbox Code Playgroud)
据我所知,问题源于我的 monorepo 锁定文件不包含我自己的包的条目。在 GAE 上安装时,它正确地发现这些条目丢失并想要添加它们 - 然后我们出错了。
目前,我只是没有完全包括锁定文件和规范部门,但似乎是错误的。这应该可行,这是一个常见的用例,并且工作区已经存在了足够长的时间。你尝试过类似的事情吗?有什么方法可以强制yarn.lock包含我的依赖项吗?
当import 'semantic-ui-css/semantic.min.css'进入一个全新的 Electron-Forge/Webpack5 项目时,我得到以下信息:
UnhandledSchemeError: Reading from "data:application/x-font-ttf;charset=utf-8;;base64,AAEAAAAO...
Webpack supports "data:" and "file:" URIs by default.
You may need an additional plugin to handle "data:" URIs.
Run Code Online (Sandbox Code Playgroud)
单步执行代码后,此处的格式似乎data:uri与 NormalModule 中提取其格式的正则表达式不匹配:https://github.com/webpack/webpack/blob/e5570ab5230e98e1030d696e84465b5f533fdae9/lib/schemes/DataUriPlugin.js#L16。;;请注意数据 URI 中的双精度,这会破坏正则表达式链接。
然而,这个 CSS 文件在我的网站上加载得很好。当单步执行 webpack 构建时,它们都会加载 CSS 文件(通过https://github.com/webpack/webpack/blob/e83587cfef25db91dc5b86be5b729288fd1bafdd/lib/NormalModule.js#L761中的断点进行验证),然后加载网站。 ..不加载这个数据URL???我尝试用网站上的配置替换 Electron 的 webpack 配置,但没有任何乐趣。
经过一四天的研究后,我已经没有任何想法了。我什至不知道下一步该戳哪里。关于我可以在哪里挖掘/可以检查什么以在 Electron 中加载此 CSS 文件有什么建议吗?
可以在这里找到一个最小的演示存储库: https: //github.com/FrozenKiwi/data-url-loading,唯一的区别是将有问题的 CSS 声明提取到本地 CSS 文件中
在DynamoDB中,“原子计数器”是一个避免出现竞争状况的数字
是什么使数字具有原子性,我可以在非单位值的浮点数中加/减吗?
目前,我正在执行“设置余额=余额+:更改”
(长版)我正在尝试使用DynamoDB来实现用户余额,因此准确性至关重要。可以同时从多个来源更新余额。无需预取余额,我们永远不会拒绝交易,我只是在乎,当所有操作完成后,我们将获得正确的余额。只要最终结果正确,也可以按任何顺序应用操作。
据我了解,这应该没问题,但是我还没有看到任何原子增量示例会改变“ 1”以外的值
我之所以感到犹豫,是因为诸如Amazon DynamoDB条件写入和原子计数器之类的问题建议针对类似情况使用条件写入,这听起来像一个可怕的主意。如果我获取余额,更改并执行条件写入,那么如果同时更改了值,则写入可能会失败。但是,平衡是业务关键的定义,在忽略文档时我总是很紧张
-附加信息-
所有写操作都将来自Lambda函数,我希望写操作的成功率几乎达到100%。但是,我还保留所有更改的历史记录,并且如果余额处于“未知”状态(例如,网络超时),则可以锁定表并根据历史记录重新计算正确的余额。
我认为这是最好的“正常”操作。在99.999%的时间内,所有更新都可以一次写入。失败的代价可能是非常高昂的,因为我们需要扫描客户的整个历史以重新建立平衡,但是就权衡而言,这似乎是一个非常安全的选择。
我在电子项目中使用react-dates,需要通过以下方式进行初始化:
import 'react-dates/initialize';
Run Code Online (Sandbox Code Playgroud)
这会在内部设置一些变量,以供以后使用。问题是,当我下次输入使用这些变量的代码时,由于它们仍然为空,因此我得到了异常。
事实证明,Chrome / Electron将它们视为2个单独的文件,即使它们是磁盘上的相同文件也是如此。破坏设置文件时,Chrome会报告以下路径(首次访问/第二次访问)
C:\src\Project\node_modules\react-with-styles\lib\ThemedStyleSheet.js
webpack:///./node_modules/react-with-styles/lib/ThemedStyleSheet.js
Run Code Online (Sandbox Code Playgroud)
好:那很奇怪-有什么用?这在哪里/如何发生?我认为这与我的Webpack设置有关-如果重要的话,我正在使用TsConfigPathsPlugin和output / paths。从我的webpack:
/**
* Base webpack config used across other specific configs
*/
import path from 'path';
import webpack from 'webpack';
import { dependencies } from '../package.json';
const TsconfigPathsPlugin = require('tsconfig-paths-webpack-plugin');
export default {
externals: [...Object.keys(dependencies || {})],
module: {
rules: [
{
test: /\.tsx?$/,
exclude: /node_modules/,
use: [
{
loader: 'babel-loader',
options: {
cacheDirectory: true
}
},
'ts-loader'
]
},
{
test: /\.js$/, // Transform all .js files required …Run Code Online (Sandbox Code Playgroud) 我的应用程序有一个后台服务,可以独立于主应用程序 (HostApduService) 运行。
如何从此后台服务访问/使用 Prism 的 IContainer?
我知道 IContainer 可从 Xamarin.Forms.Application.Current 获得,请参阅:
但是,在我的情况下,如果服务在不启动应用程序本身的情况下运行,则该应用程序可能不存在。
electron ×2
javascript ×1
monorepo ×1
node.js ×1
prism ×1
typescript ×1
webpack ×1
webpack-5 ×1
yarnpkg ×1