想创建一个工具包tools,提供给内部数个项目使用,依赖d3。
内部几个项目有传统结构的:如下
<script src="d3.js" />
还有使用webpack的,基于commonjs
var d3=require('d3')
另外还有混合搭配的,在html里面引入,在js里面不require,减小文件的体积和编译时间,可以一定程度上视为传统结构。
那么问题来了:我的项目里面到底要不要加入这行代码:
var d3 = require('d3')
如果我写了,那么别我的tools.js或是别人require之后都会默认包含d3,不压缩的话大概有400K,如果他们本身使用webpack之类引d3还好,但如果是传统结构,那么这多引入这部分的就浪费了。
如果我不写,那么必须要保证 window上有d3对象,我的代码才能正常运行。如果基于webpack的,他们要是这样写就会报错:
var d3=require('d3');
var tools = require('tools.js');
tools.xxxx(); //报错,没有d3对象不能运行
求支招!
富国沪深
相关分类