1.2.11 • Published 7 years ago

node-oojs-utility v1.2.11

Weekly downloads
236
License
-
Repository
github
Last release
7 years ago

oojs-utility

oojs 工具库.

具体文档参见: ./doc/index.html

2015.9.24 更新:新增painter打包功能

如果需要打包painter,在package.json文件中build下新增打包任务,任务名称务必带有painter(大小写均可),或者任务中存在type属性,并且type值为painter 如:

"build": {
    "main": {
        "template": "./entry/ssp.js",
        "sourceFile": ["./test/ssp.source.js"],
        "formatFile": ["./test/ssp.js"],
        "compressFile": ["./asset/ssp.js"],
        "gzipFile": ["./asset/ssp.js.gz"]
    },
    "slidePainter": {
        "type": "painter",
        "template": "./src/dup/ui/painter/slide.js",
        "sourceFile": ["./test/painter/slide.source.js"],
        "formatFile": ["./test/painter/slide.js"],
        "compressFile": ["./asset/painter/slide.js"],
        "gzipFile": ["./asset/painter/slide.js.gz"]        
    },
    "inlayFixPainter": {
        "template": "./src/dup/ui/painter/inlayFix.js",
        "sourceFile": ["./test/painter/inlayFix.source.js"],
        "formatFile": ["./test/painter/inlayFix.js"],
        "compressFile": ["./asset/painter/inlayFix.js"],
        "gzipFile": ["./asset/painter/inlayFix.js.gz"]            
    },
    "floatPainter": {
        "template": "./src/dup/ui/painter/float.js",
        "sourceFile": ["./test/painter/float.source.js"],
        "formatFile": ["./test/painter/float.js"],
        "compressFile": ["./asset/painter/float.js"],
        "gzipFile": ["./asset/painter/float.js.gz"]            
    }
}

运行oojs build即可。也可以使用oojs watch对文件修改进行监视,也可自动打包painter

2015.9.8 更新:新增oojs watch

原oojs-build工具存在的问题:

  1. 打包时间过慢,平均需要5s左右
  2. 每次打包需要手动在命令行内运行oojs build
  3. 因为上一个原因,所以开发调试时只能在合并后的大文件上调试开发,上线前再粘贴覆盖独立文件
  4. 在打包时(oojs build)如果遇到打包脚本格式问题(如缺少逗号,缺少括号),打包会终止并且抛出异常,但无法准确告知出问题的文件和具体位置,难以排查

改进点:

  1. 保留oojs build打包命令
  2. 提供oojs watch命令,监听entry, src文件夹。如果该两个文件夹内文件发生变化(请留意下方注意1),自动进行打包,耗时80ms左右(请留意下方注意2)。
  3. 如果在打包过程中遇到脚本格式问题而出错,能够及时终止程序,并且告知出现问题的脚本文件路径,行数,列数。
  4. 添加打包过程中的命令行提示

注意

  1. oojs watch只对单个文件的更改进行监听,对文件夹的新增和删除不做出任何响应。如果文件删除后通过回收站还原,则该还原操作视为修改文件而非新增文件。且有可能出错,请避免该操作
  2. oojs watch发现文件更改而进行的打包,不包括对文件的压缩(即如asset/ssp.js文件)和gzip打包。因为uglify对文件压缩需要1s左右时间,比较耗时,且考虑到oojs watch使用场景为调试环境,所以摒弃该两项打包操作。如果需要对文件进行压缩和gzip打包,请运行oojs build命令

改进方案

新增chokidarnode模块对文件更改进行监视。

第一次构建时将所有模块的源码缓存,以及这个模块所有依赖模块的名称缓存。一旦某个文件发生修改时,只重新读取该文件源码,并判断依赖是否有更改。如果依赖模块有更改,则重新计算所有文件依赖后开始重新构建;否则更新该模块后重新构建,其他模块的源码直接从缓存中读取。

具体流程图如下:

workflow;

1.2.11

7 years ago

1.2.10

7 years ago

1.2.9

7 years ago

1.2.8

7 years ago

1.2.7

7 years ago

1.2.6

7 years ago

1.2.5

7 years ago

1.2.4

8 years ago

1.2.3

8 years ago

1.1.22

8 years ago

1.2.1

8 years ago

1.1.21

8 years ago

1.2.0

9 years ago

1.1.20

9 years ago

1.1.19

9 years ago

1.1.18

9 years ago

1.1.17

9 years ago

1.1.16

9 years ago

1.1.15

9 years ago

1.1.14

9 years ago

1.1.13

9 years ago

1.1.12

9 years ago

1.1.11

9 years ago

1.1.10

9 years ago

1.1.9

9 years ago

1.1.8

9 years ago

1.1.7

9 years ago

1.1.6

9 years ago

1.1.5

9 years ago

1.1.4

9 years ago

1.1.3

9 years ago

1.1.2

9 years ago

1.1.1

9 years ago

1.1.0

9 years ago

1.0.29

9 years ago

1.0.28

9 years ago

1.0.27

9 years ago

1.0.26

9 years ago

1.0.25

9 years ago

1.0.24

9 years ago

1.0.23

9 years ago

1.0.22

9 years ago

1.0.20

10 years ago

1.0.19

10 years ago

1.0.18

10 years ago

1.0.17

10 years ago

1.0.16

10 years ago

1.0.15

10 years ago

1.0.14

10 years ago

1.0.13

10 years ago

1.0.12

10 years ago

1.0.11

10 years ago

1.0.10

10 years ago

1.0.9

10 years ago

1.0.8

10 years ago

1.0.7

10 years ago

1.0.6

10 years ago

1.0.5

10 years ago