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

采用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",就必须包含源代码。

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

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

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

相关代码

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

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

阅读 2.2k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏