monorepo模式下如何动态修改package.json中的module值

发布于 2022-09-12 13:58:21 字数 1116 浏览 28 评论 0

采用monorepo模式构建了一个组件库,整体工程运行正常,但是存在一个问题:

拿其中一个模块说明:

该模块的package.json配置如下:

{
 "name": "@hecate/h-button",
 "version": "1.0.0",
 "license": "MIT",
 "main": "dist/index.umd.js",
 "module": "src/index.js",
 "unpkg": "dist/index.min.js",
 "scripts": {
 "start": "yarn build",
 "clean": "rimraf dist",
 "lib": "yarn clean && cross-env NODE\_ENV=production rollup --config rollup.config.js",
 "transpile": "vue-cli-service build --target lib ./src/index.js",
 "dev": "yarn build"
 }
}

问题出在**module**值的配置。我想将工程中各个包发布到npm,但是不想包含src中的源代码。那么我回将package.json修改为:

{
    ···
    "main": "dist/index.umd.js",
    "module": "dist/index.esm.js",
    ···
}
  • 如果将"module"修改为"module": "dist/index.esm.js",每次修改和开发的时候,就需要手动运行一下命令进行重新编译。
  • 如果将"module"修改为"module": "src/index.js",每次修改就不需要重新编译。但是,由于"module"指定了"src/index.js",就必须包含源代码。

我先在采取的办法是发布前手动修改这个值。但是模块越来越多,手动修改很麻烦。现在能想到的办法就是自己写脚本来修改,但是也不够自动化。

想问一下这个问题有么有什么比较好的、优雅一点的解决办法?### 问题描述

问题出现的环境背景及自己尝试过哪些方法

相关代码

粘贴代码文本(请勿用截图)

你期待的结果是什么?实际看到的错误信息又是什么?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文