我正在用ES6编写一个小型库。
我的目标是:
问题: 为用户提供重新定义助手/实用程序功能的好方法是什么?
到目前为止,我想到的是 src / main.js 中有一个库, 这取决于包含帮助程序功能的本地 src / utils.js 文件:
// utils.js
import extend from 'lodash';
import isFunction from 'lodash';
import moment from 'moment';
// exporting helper object
export default {
isFunction (value) {
return isFunction(value);
}
// ... more helper functions
};
// main.js
import helper from './utils.js';
const MyLibrary = function () {
};
export default MyLibrary;
在旧的浏览器时代,我曾经在全局范围内设置对象,然后 扩展它或完全替换库的帮助对象。
我应该这样做吗?
// Node
import MyLibrary from 'MyLibrary';
MyLibrary.setHelper(userDefinedHelperObject);
// Browser
<script src="userDefinedHelper.js"></script>
<script src="dist/MyLibrary.js"></script>
或
<script src="dist/MyLibrary.js"></script>
<script>
MyLibrary.setHelper(userDefinedHelperObject);
</script>
对于ES6库来说,什么是2018年代的好方法? 用户能否以某种方式指定自己的utils.js的路径 并让webpack / rollup / etc使用用户指定的脚本进行编译/转换?