如何将用ES6编写的模块发布到NPM?

2022-08-30 02:11:06

我正准备向NPM发布一个模块,当时我想用ES6重写它,既要面向未来,又要学习ES6。我使用 Babel 转译到 ES5,并运行测试。但我不确定如何继续:

  1. 我是否转译并将生成的 /out 文件夹发布到 NPM?
  2. 我是否将结果文件夹包含在我的 Github 存储库中?
  3. 或者我是否维护2个存储库,一个使用Github的ES6代码+gulp脚本,另一个使用NPM的转译结果+测试?

简而言之:我需要采取哪些步骤才能将用ES6编写的模块发布到NPM,同时仍然允许用户浏览/分叉原始代码?


答案 1

到目前为止,我看到的模式是将es6文件保存在一个目录中,并在npm的预发布到目录中构建你的东西。srclib

您将需要一个 .npmignore 文件,类似于 .gitignore,但忽略而不是 .srclib


答案 2

我喜欢何塞的回答。我注意到有几个模块已经遵循了这种模式。下面介绍如何使用 Babel6 轻松实现它。我在本地安装,因此如果我更改全局 babel 版本,构建版本不会中断。babel-cli

.npmignore

/src/

.gitignore

/lib/
/node_modules/

安装巴别塔

npm install --save-dev babel-core babel-cli babel-preset-es2015

package.json

{
  "main": "lib/index.js",
  "scripts": {
    "prepublish": "babel src --out-dir lib"
  },
  "babel": {
    "presets": ["es2015"]
  }
}