发布 npm 包时,我应该使用 dist 的 src

rya*_*ang 6 javascript node.js npm webpack

将一些 javascript 作为库发布到 npm 时,我应该将 pacakge.json 中的“main”设置为“dist/index.js”还是“src/index.js”?

假设这个库是用 webpack 构建的,可以和 webpack 中的项目一起使用。

两个选项之间有什么区别。webpack 可以在这两个选项中进行摇树吗?

谢谢!

Dan*_*nce 6

如果您的库设计为在浏览器中使用,那么请务必记住,并非每个人都在使用模块捆绑器。

最好将main属性设置为捆绑文件(在您的情况下dist/index.js),并确保您有一个prepublish在发布之前执行构建步骤的脚本。

要使用 Rollup 等捆绑器支持树摇动,您可以使用该module属性并确保它指向使用 ES2015 导入的模块。

例如:

{
  "main": "dist/index.js",
  "module": "src/index.js"
}
Run Code Online (Sandbox Code Playgroud)

Rollup 会尊重这一点,但让 Webpack 对代码进行 tree-shake 会涉及更多一些