猿问

javascript 如何写一个依赖于其它项目的工具包

想创建一个工具包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对象不能运行

求支招!


慕姐8265434
浏览 399回答 1
1回答

富国沪深

既然你的模块依赖于 d3 ,那就一定要把 d3 打进去啊。模块最大的特点就是得保证使用者开箱即用,在引入你的依赖之后,不用再显示的引入别的依赖。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答