时间:2021-07-01 10:21:17 帮助过:4人阅读
define模块解析依赖有两种途径,一种是从define(id, deps, factory)
中的deps来;还有一种是解析define代码,从require中来。来看一下代码:
如果传了deps那就不进行解析了,如果传那就进行源码解析:
seajs是对源码正则对比,查找require,也就是说require在seajs模块中,是一个关键字。
那么问题就来了,一般我们使用的压缩工具都变量进行压缩,require不是标准的js关键字,所以经过一压缩require就变成了abcdefg....所以自然就无法使用了。
解析办法有两个:
1. seajs官方给出是seajs标准模块构建工具:https://github.com/seajs/seajs/issues/538 使用spm进行构建。
2. 更换压缩工具,使用一个可以自定义关键字,也就是让压缩工具不压缩require变量。
目前主流的三个压缩工具:YUI Compressor,Google Closure Compiler,UglifyJS。就目前所知,貌似前两个都不支持自定义关键字(?),UglifyJS是支持的。所以可以使用UglifyJS进行压缩
通过-r选项来指定变量不压缩。
总的来说使用seajs应该尽量的去使用官方的构建工具。
相关推荐:
Python中使用gzip模块压缩文件的简单教程
以上就是seajs模块压缩出现问题如何解决的详细内容,更多请关注Gxl网其它相关文章!