如何为浏览器/节点提供对ES6脚本的用户定义的utils依赖关系

时间:2018-09-25 21:24:10

标签: javascript webpack package es6-modules

我正在用ES6编写一个小型库。

我的目标是:

  • 使其适用于浏览器 Node 环境。
  • 使用用户定义的版本轻松更改 utils 脚本

问题: 为用户提供重新定义助手/实用程序功能的好方法是什么?

到目前为止,我想到的是 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使用用户指定的脚本进行编译/转换?

0 个答案:

没有答案