问答

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

作者:admin 2021-05-09 我要评论

采用monorepo模式构建了一个组件库,整体工程运行正常,但是存在一个问题: 拿其中一个模块说明: 该模块的package.json配置如下: { "name": "@hecate/h-button...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)

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

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

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

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

相关代码

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

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

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • grom设置json默认值

    grom设置json默认值

  • Vue路由报错,看着没问题

    Vue路由报错,看着没问题

  • 思否邮箱登录为什么区分大小写了呢?

    思否邮箱登录为什么区分大小写了呢?

  • 有没有能够直接上传markdown文件作为博

    有没有能够直接上传markdown文件作为博

腾讯云代理商
海外云服务器