1.0.3 • Published 2 years ago

pkg-exports-field-test v1.0.3

Weekly downloads
-
License
ISC
Repository
-
Last release
2 years ago

这是个 测试包 请不要下载

exports field test & babel compiled

可参考 axios-retry

package.json

{
  "name": "pkg-exports-field-test",
  "main": "index.js", # commonjs 引入时
  "module": "lib/esm/index.js", # es module 引入时,

  # 新提案的  兼容方式,
  # 这种写法 引入的时候需要
  # import xxx from 'pkg-exports-field-test'
  "exports": {
    ".": {
      "import": "./lib/esm/index.js",
      "require": "./index.js"
    },
    
    # 这种写法 引入的时候需要
    # import xxx from 'pkg-exports-field-test/parse'
    "./parse": {
      "import": "./lib/esm/index.js",
      "require": "./index.js"
    },
    "./package.json": "./package.json"
  },
  ...
}

babel.config.json 中的 @babel/preset-env

{
  "presets": [
    [
      "@babel/preset-env",
      {
        "targets": {
          "esmodules": true
        }
      }
    ]
  ]
}

{
  "presets": [
    [
      "@babel/preset-env",
      {
        "targets": {
          "esmodules": true
        },
        "modules": false
      }
    ]
  ]
}

运行 babel src -d lib/esm --source-maps 的效果分别如下

"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.parsePath = parsePath;

var _path = _interopRequireDefault(require("path"));

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function parsePath(p) {
  return _path.default.parse(p);
} // console.log(parsePath('/home/user/dir/file.txt'))
//# sourceMappingURL=index.js.map

import path from 'path';
export function parsePath(p) {
  return path.parse(p);
} // console.log(parsePath('/home/user/dir/file.txt'))
//# sourceMappingURL=index.js.map

modules 将此设置为 false 将保留 ES 模块, 不进行编译转换

1.0.3

2 years ago

1.0.1

2 years ago

1.0.0

2 years ago