如何定义一个 npm 模块需要 babel transpile

How to define a npm module requirea babel transplie

我创建了一个 npm 模块,它使用 babel 来翻译 es6/es7。我定义了 prepublish 如下:

"scripts": {
    "build": "babel -d dist/ src/",
    "prepublish": "yarn run build",
  },
"main": "dist/index.js",

当我 运行 npm publish 时,我可以看到 运行s prepublish 将代码编译到 dist 目录。所以我将 main 入口点定义为 dist/index.js.

但是在其他依赖这个模块的项目中,我定义了如下依赖:

"devDependencies": {
    ...
    "mongo-shell-translator": "0.0.1-alpha.6",
    ...
}

当我运行 yarn install 可以看到这个依赖已经下载到node_modules下但是dist目录下没有生成。所以我的项目报错说Error: Can't resolve 'mongo-shell-translator'。 如何在 yarn install.

期间让其他项目 运行 babel

您不需要这样做,只需将源代码转换为 dist 并将此字段添加到 package.json:

"files": [
    "dist"
 ]

这会将文件夹包含到 npm 存储库中,并且由于您的 main 指向它,您已经指向了转译版本。