壹玖零Tech

前端, 后端,软件知识分享

Linux常用命令记录

# 清除当前目录下所有log日志 find . -type f -name "*.log" -exec truncate -s 0 {} \; # 使用 du 命令查找整个系统中占用空间最大的文件和目录 $ du -ahx / | sort -rh | head -n 10 这个命令会从根目录开始扫描文件夹并列出其中占用空间最大的 10 个文件或目录。 # 查看目录下文件大小 ls -lh | awk '{print $5, $9}' # 使用 du 命令来查看当前目录下子目录的大小 解释一下该命令: du 命令用于查看指定文件或目录空间使用情况。 -h 参数用于显示人类可读形式的文件大小,即自动将字节转换为较大的单位(如 KB、MB、GB)。 --max-depth=1 参数用于限制查看子目录的深度为
1 min read

CryptoJS.enc.Base64.stringify和window.btoa处理Uint8Array不一致的问题

浏览器端对字符串进行gzip压缩。 通过查找,发现https://github.com/nodeca/pako 这个库可以实现。 遇到的问题: 通过pako,gzip字符串之后,生成base64,使用window.btoa 和 CryptoJS.enc.Base64.stringify的结果不一致。 import { gzip } from 'pako'; import CryptoJS from 'crypto-js/core'; // 通过gzip之后生成的是 Uint8Array const f = gzip('abc', { to: 'string' }); const wa = CryptoJS.lib.WordArray.create(
1 min read
TYPESCRIPT

typescript 复用函数或类方法的参数类型

日常开发中,总会需要去封装一些三方库的功能进行使用。 在遇到简单类型的函数使用时,我们直接给我们功能函数添加上和被包装函数相同的类型即可。如: function A(args: number) { return libFun(args: number) } 但若是遇到复杂类型,如何直接去复用或者说继承被包装函数的类型? 1、复用函数类型 function base(a: number, b: number, c: number): number function derived(add: string, ...base: Parameters<typeof base>): number Extending another TypeScript function with additional argumentsIs it possible in TypeScript to define
2 min read
NUXTJS

This relative module was not found: ./index.vue?vue&type=script&lang=ts& in ./pages/index.vue

使用Nuxt脚手架创建typescript项目,npm run dev启动开发服务,报如下错误: This relative module was not found: ./index.vue?vue&type=script&lang=ts& in ./pages/index.vue 解决办法,升级依赖 @nuxt/typescript-runtime ,执行: yarn add @nuxt/typescript-runtime 升级到新版本 ^2.0.0 即可 我这边试了ok。 引用 [https://github.com/nuxt/nuxt.js/issues/8015]
FLUTTER Featured

通过Tree shaking和deferred loading来优化Flutter Web应用程序的性能

为了获得最佳的用户体验,应用程序的加载速度非常重要。Flutter Web应用程序的初始加载时间可以通过最压缩其JavaScript包的大小缩短。Dart编译器包含诸如Tree shaking和deferred loading(延迟加载)之类的功能,它们都可以压缩JavaScript。本文介绍了它们的工作方式以及如何在应用程序中使用它们。 默认情况下的Tree shaking 编译Flutter Web应用程序时,JavaScript由dart2js编译器生成。发布版本具有最高级别的优化,其中包括通过tree shaking删除无用代码。 Thee shaking是消除无效代码的过程,只包含会被执行的代码。这意味着您无需担心应用程序包含的库的大小,因为未使用的类或函数将从已编译的JavaScript包中排除。 我们来看一个tree shaking示例: 1. 创建一个dart文件greeter.dart: abstract class Greeter { String greet(Str
4 min read
JAVASCRIPT

JS字符串相似性、抄袭 判断

如题所示,为了判断内容相似性,快速过滤重复内容。经过一番学习查找之后,有如下结果: 使用 string-similarity [https://github.com/aceakash/string-similarity] 快速解决问题: npm install string-similarity --save stringSimilarity.compareTwoStrings('healed', 'sealed'); // → 0.8 stringSimilarity.compareTwoStrings('Olive-green table for sale, in extremely good condition.', 'For sale: table in very good condition, olive green in
1 min read
ReactNative

React ReactNative通用异步引入组件解决方案

实际开发中,难免会遇到一个页面会依赖很多组件的,但都是通过接口下发的条件进行动态引入的。 React已经为我们提供了一种异步引入组件的通用方法,上代码: import React, { Suspense } from "react"; const LazyLargeComponent = React.lazy(() => { return new Promise(resolve => setTimeout(resolve, 5 * 1000)).then( () => import("../components/LargeComponent") ); }); export default function LargeComponent() { return ( <div> <Suspense fallback={<div>loading...</div}
1 min read
FLUTTER Featured

Ambiguous organization in existing files--flutter create .

为了让现有项目支持web时,通过官网文档说明,需要执行以下命令: flutter create . 然而报错了: Ambiguous organization in existing files: {com.testflutter, com.example}. The --org command line argument must be specified to recreate project. 幸好谷歌提供了强大的搜索引擎,我一顿搜索猛如虎,果然还是有各种大拿提前探路,搭好桥梁,让我跨域河沟呀。不禁感叹技术的进步就在这些细节的分享和探讨之中,大家一起来分享吧~ 如果有意愿在当前博客上注册账号,可以给我发邮件哟,我的邮箱地址   378253487@qq.com ,邮件需要包含以下内容,很简单: 注册博客账号申请: 我需要用来注册的邮箱账号:(例如:xxxx@qq.com) 我的职业:(例如:前端开发工程师)
2 min read
CSS

chrome 浏览器表单自动填充默认样式 - autofill

Chrome 会在客户登陆过某网站之后, 会自动记住密码. 当你下次再次进入该网站的时候, 可以自由的选择登陆的账号, Chrome 会为你自动填充密码. 而你无需再输入密码 这本身是一个很好的功能, 但是对于开发者而言, 却有一个很让人难受的问题. 当你选择账号密码之后, 你的输入框会变成黄色, 这样自己设置的背景颜色就被覆盖了.
2 min read