0%

  1. mode=production 的时候会自动压缩混淆js。但是如果加上css压缩的配置后,js的会失效,需要显式声明压缩插件 new TenserJSPlugin()

  2. (file-loader extract-loader html-loader) 与 html-webpack-plugin 有冲突。这时候生成的index.html模板信息会丢失掉,只有一个片段。解决方案是在 (file-loader extract-loader html-loader) 处理html导入的时候,exclude掉index.html(不一定是这个名字,主要看模板名称)

依次点击Window –> Perferences(选项设置) –> Java –> Editor(编辑) –> Content Assist(内容辅助/代码提示)
alt
然后在“Content Assist”页面中,可以看到下面有一个Auto Activation中有一个Auto activation triggers for Java

在这一个输入框中输入.qwertyuioplkjhgfdsazxcvbnm,然后点击下面的“OK”,这样代码自动补全就已经设置好了

在我们编写代码的时候,只要打出一个字母或者”.”都可以自动调出自动补全功能

p5.js

把整个浏览器当做一个画板进行创意创作的绘图库
官网: https:p5js.org

SpriteJS

SpriteJS是一款由360奇舞团开源的跨终端 canvas/webgl绘图库,我看了下API非常友好
官网: https:gitee.com/qihoo360/SpriteJS

Annie2x

Annie2x是一款Adobe Flash的插件,支持Flash CC 2015及以上 和 Adobe Animate全线版本。
官网: http://annie2x.com/

flatfile

超强的数据导入js库,可以将Excel PDF CSV 导出成廷议的符合规则的结构化数据,强大的UI界面支持,非常适合集成到大数据采集的项目

官网

https://flatfile.io

特色

  1. 前端数据导入,校验,格式化
  2. 无须构建CSV解析器
  3. 强大的API可以将结构化数据发布到任意端点

flatfile库的设计思路

  1. 定义JSONschema用于数据自身的校验
  2. 提供导入校验的钩子 用于数据行字段之间的的校验,以及数据处理能力
  3. 点击导入按钮,解析Excel,将Excel列与JSONschema列进行自动映射
  4. 提供映射交互页面,给用户修改自动映射的结果
  5. 生成数据处理后的结果,让用户填充校验失败的字段
  6. 提供导出的API 提供平台能力使用这些结构化数据

handsontable 强大的表格,数据再多都不会卡

https://handsontable.com/

ag-grid The Best JavaScript Grid in the World

https://www.ag-grid.com

最近刷OJ算法题库的时候,发现很多都是数学问题都使用的穷举法,于是写了获取穷举的全排列,全组合两个函数。

全组合

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
/**
* 全组合
* @param arr 用于组合的元数据
* @param n 取其中的n个数据用于组合
* @returns
*/
function getAllMix(arr, n) {
let len = arr.length ** n //全排列的长度
let res = Array.from({ length: len }, (item, k) => {
// 构造都是0的空数组
let g = Array.from({ length: n }, () => 0)
let ret = [...g, ...k.toString(arr.length).split('')].slice(-n).map(j => arr[j])
return ret
})

return res
}

getAllMix([1,2,3],2)
// 从1,2,3中获取其中两个数的所有组合
// [1, 1]
// [1, 2]
// [1, 3]
// [2, 1]
// [2, 2]
// [2, 3]
// [3, 1]
// [3, 2]
// [3, 3]

全排列

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
/**
* 全排列
* @param arr 全排列的元数据
* @returns
*/
function getAllSort(arr) {
let len = arr.length ** arr.length
let res = Array.from({ length: len }, (item, k) => {
// 构造都是0的空数组
let g = Array.from({ length: arr.length }, () => 0)
let ret = [...g, ...k.toString(arr.length).split('')].slice(-arr.length)
return ret
})
let dd = res.filter(item => {
item=item.map(k=>parseInt(k))
let set = new Set(item)
return set.size == item.length
}).map((i) => {
let out=[]
i.forEach((j,k) => {
out[k]=arr[j]
})
return out
})
return dd
}

getAllSort([1,2,3])
// 数组1,2,3的全排列
// [
// [ 1, 2, 3 ],
// [ 1, 3, 2 ],
// [ 2, 1, 3 ],
// [ 2, 3, 1 ],
// [ 3, 1, 2 ],
// [ 3, 2, 1 ]
// ]

淇℃伅其实是 信息的乱码显示
修改tomcat安装目录下的config/logging.properties文件,找到java.util.logging.Consolehandler.encoding,将值改成GBK即可解决该问题。我下载的comcat8.5默认是UTF-8

如果没有这个配置项就在最后直接加上

config/logging.properties
1
java.util.logging.Consolehandler.encoding = GBK

  1. 入口第一行 index.js 声明脚本执行环境是node

    /path/index.js
    1
    #! /usr/bin/env node
  2. package.json#bin对象内可以配置多个命令行。key是命令,value是文件路径

    /package.json
    1
    2
    3
    4
    5
    6
    {
    "bin":{
    "vue":"path/index.js",
    "名称2":"path/to/some.js"
    }
    }
  3. 使用 npm link全局安装这个包,就可以使用vue xxx命令咯

  4. 或者作为本地依赖项,在srcipts里面使用

    /package.json
    1
    2
    3
    4
    5
    6
    7
    8
    {
    "srcipts":{
    "cli":"vue xxx"
    },
    "dependencies":{
    "vue-cli":"file:./index.js"
    }
    }

注册表修改

创建 fastkey.reg 注册表修改文件。 AutoRun后面的路径修改成自己的配置文件,这个修改是让CMD每次执行的时候去执行下这个fastkey.bat

fastkey.reg
1
2
3
4
Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Command Processor]
"AutoRun"="D:\\profile\\fastkey.bat"

创建修改 fastkey.bat 文件

这里我创建了三个命令别名

  1. (单行命令)用linux shell的ls命令执行windows cmd的dir命令。$*代表把ls后面所有的参数带给dir
  2. (多行命令)多行命令的话,我们可以写在批处理文件中,然后通过别名调用批处理文件
  3. 端口被占用查询netstat -ano | findstr LISTENNING | findstr 8080,这个命令我经常用但是又记不住,所以配置了一个别名,要注意的点是管道运算符|需要转义成$b,且两边不能有空格
    D:\profile\fastkey.bat
    1
    2
    3
    4
    5
    @echo off
    doskey ls= dir /b $*
    doskey dev= call %~dp0npmdev.bat
    doskey port= netstat -ano$bfindstr LISTENNING$bfindstr $*

  4. 创建自定义批处理脚本 npmdev.bat
    D:\profile\npmdev.bat
    1
    npm run dev || npm start

总结

现在我可以在命令行里面

  1. 输入dev执行 npm run dev || npm start
  2. 输入 ls 查看当前目录
  3. 输入 port 8080 查看端口被哪个进程占用,然后taskkill

发挥想象,还能用这个做更多的事情