【问题标题】:One node module, two libraries, one export in ES6ES6 中的一个节点模块,两个库,一个导出
【发布时间】:2016-01-20 07:12:58
【问题描述】:

目前,在将库拆分为特定于 JS 框架的存储库(React、JQuery、Angular 等)之前,我在一个 npm 模块中有多个库(是的,那是一种反模式)。

但是请幽默,我如何导出其中一个库而不导出另一个库?如果我只使用 React 并且 package.json 中只有一个“main”,我不想要 jquery 模块。

一种选择是通过 from './node_modules/ui-combined-module/src/react/dist.js'; 的相对目录导入模块,但这看起来相当混乱。

对于

// Use one of the following in your example code:
// import {react as UILibraryReact} from 'ui-combined-module';
// const Badge = UILibraryReact.Badge;

// import {jquery as UILibraryJquery} from 'ui-combined-module';
// const Badge = UILibraryJquery.Badge;

import * as react from './react/dist';
import * as jquery from './jquery/dist';

module.exports = {
    react,
    jquery
};

【问题讨论】:

    标签: javascript npm package.json


    【解决方案1】:

    为什么不使用这个模块导入 jquery 或在代码中做出反应?

    import react from 'yourlib'
    

    或者返回一个函数

    exports default function (lib) {
       if(lib === 'react') return react;
       ...
    }
    

    【讨论】:

    • 我认为在您的 export 声明之上,您仍然需要同时导入 react 和 jquery 模块,否则您无法返回它们,因为它们不会被定义。
    • 我想你可以用旧的 require 语法 if(lib === 'react') return require('react') 替换 react
    猜你喜欢
    • 2017-01-02
    • 2015-12-24
    • 1970-01-01
    • 2018-07-10
    • 1970-01-01
    • 2016-11-15
    • 1970-01-01
    • 1970-01-01
    • 2018-04-13
    相关资源
    最近更新 更多