【问题标题】:when publishing npm package, should I use src of dist发布 npm 包时,我应该使用 dist 的 src
【发布时间】:2017-04-17 23:39:24
【问题描述】:

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

假设该库是用 webpack 构建的,并且可以与 webpack 中的项目一起使用。

两个选项之间有什么区别。 webpack 是否能够在这两个选项中进行摇树?

谢谢!

【问题讨论】:

    标签: javascript node.js npm webpack


    【解决方案1】:

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

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

    为了支持使用 Rollup 之类的打包工具进行 tree-shaking,you can use the module property 并确保它指向使用 ES2015 导入的模块。

    例如:

    {
      "main": "dist/index.js",
      "module": "src/index.js"
    }
    

    Rollup 会尊重这一点,但让 Webpack 对你的代码进行 tree-shake 是 little more involved

    【讨论】:

    • 感谢您回答问题。我最终使用了 dist/index.js。原因是通常项目会从 babel 转译中排除 node_modules,因此最好发布 dist 版本。唯一的缺点是当你npm link你的依赖并在本地开发时,你需要记住启动构建过程来构建dist版本。有时它往往会被遗忘,并且可能会浪费时间。
    猜你喜欢
    • 2021-05-01
    • 2017-02-05
    • 2021-01-21
    • 1970-01-01
    • 2019-06-09
    • 1970-01-01
    • 2020-07-02
    • 1970-01-01
    • 2021-10-02
    相关资源
    最近更新 更多