遵循 José 和 Marius 的方法,(2019 年更新了 Babel 的最新版本):将最新的 JavaScript 文件保存在 src 目录中,并使用 npm 的prepublish脚本构建并输出到 lib 目录。
.npmignore
/src
.gitignore
/lib
/node_modules
安装 Babel(在我的例子中是 7.5.5 版)
$ npm install @babel/core @babel/cli @babel/preset-env --save-dev
包.json
{
  "name": "latest-js-to-npm",
  "version": "1.0.0",
  "description": "Keep the latest JavaScript files in a src directory and build with npm's prepublish script and output to the lib directory.",
  "main": "lib/index.js",
  "scripts": {
    "prepublish": "babel src -d lib"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "@babel/cli": "^7.5.5",
    "@babel/core": "^7.5.5",
    "@babel/preset-env": "^7.5.5"
  },
  "babel": {
    "presets": [
      "@babel/preset-env"
    ]
  }
}
我有src/index.js它使用箭头函数:
"use strict";
let NewOneWithParameters = (a, b) => {
  console.log(a + b); // 30
};
NewOneWithParameters(10, 20);
这是GitHub 上的 repo。
现在您可以发布包:
$ npm publish
...
> latest-js-to-npm@1.0.0 prepublish .
> babel src -d lib
Successfully compiled 1 file with Babel.
...
在将包发布到 npm 之前,您会看到lib/index.js已经生成,并被转译为 es5:
"use strict";
var NewOneWithParameters = function NewOneWithParameters(a, b) {
  console.log(a + b); // 30
};
NewOneWithParameters(10, 20);
[Rollup 打包器的更新]
正如@kyw 所问的,您将如何集成 Rollup 捆绑器?
首先,安装rollup并rollup-plugin-babel
npm install -D rollup rollup-plugin-babel
二、rollup.config.js在项目根目录下创建
import babel from "rollup-plugin-babel";
export default {
  input: "./src/index.js",
  output: {
    file: "./lib/index.js",
    format: "cjs",
    name: "bundle"
  },
  plugins: [
    babel({
      exclude: "node_modules/**"
    })
  ]
};
最后,更新prepublish中package.json
{
  ...
  "scripts": {
    "prepublish": "rollup -c"
  },
  ...
}
现在可以运行了npm publish,在发布包到npm之前,你会看到已经生成了lib/index.js,转译为es5:
'use strict';
var NewOneWithParameters = function NewOneWithParameters(a, b) {
  console.log(a + b); // 30
};
NewOneWithParameters(10, 20);
注意:顺便说一下,@babel/cli如果您使用的是 Rollup 捆绑器,则不再需要。您可以安全地卸载它:
npm uninstall @babel/cli