rollup打包

(function (global, factory) {
  typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('lodash'), require('nnnn')) :
  typeof define === 'function' && define.amd ? define(['exports', 'lodash', 'nnnn'], factory) :
  (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global["legos-ui"] = {}, global._, global.adamzhoutext));
})(this, (function (exports, tools, x) { 'use strict';

  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }

  var tools__default = /*#__PURE__*/_interopDefaultLegacy(tools);
  var x__default = /*#__PURE__*/_interopDefaultLegacy(x);

  var LegosCascader = function LegosCascader(a, b) {
    var m = a + b;
    var obj = {
      name: 'adam'
    };
    var result = m + x__default["default"];
    console.log(result, 'zzg:result');
    return tools__default["default"].get(obj, 'name');
  }; // To allow use as module (npm/webpack/etc.) export component
  // also be used as directives, etc. - eg. import { RollupDemoDirective } from 'rollup-demo';
  // export const RollupDemoDirective = compimport { LegosLogicFlow } from '../packages/legos-logic-flow/index';
  // onent;

  exports.LegosCascader = LegosCascader;

  Object.defineProperty(exports, '__esModule', { value: true });

}));

企业微信截图_17290650485331.png

rollup的exports的含义,如果是default的话,那么用户可以

// your-lib 包入口
export default 'Hello world';

// CommonJS 消费者
/* require( "your-lib" ) 返回 "Hello World" */
const hello = require('your-lib');

可以这样使用,但是如果是named的话,用户可以

// your-lib 包入口
export const hello = 'Hello world';

// CommonJS 消费者
/* require( "your-lib" ) 返回 {hello: "Hello World"} */
const hello = require('your-lib').hello;
/* 或使用解构 */
const { hello } = require('your-lib');

说白了就是导出一个对象

// your-lib 包入口
export default 'foo';
export const bar = 'bar';

// CommonJS 消费者
/* require( "your-lib" ) 返回 {default: "foo", bar: "bar"} */
const foo = require('your-lib').default;
const bar = require('your-lib').bar;
/* 或使用解构 */
const { default: foo, bar } = require('your-lib');

如果是既有named的导出又有default的导出,那么导出的内容会变成有default的,那么用户使用的时候就不能够达到第一种的效果
只是通过require就拿到default的内容,是拿不到的,也就是const a = require('A'),因为此时是打包到default里面的,他并不等价于 import a from A,这个import a from A就是你的项目,也就是consumer使用的时候被一些工具把require转换成esm的

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容