资讯专栏INFORMATION COLUMN

npm 包如何支持子路径?

teren / 882人阅读

摘要:包如何支持子路径目前看到了两种做法。最终,以根目录下的为基准,将此包发布出去。通过能够正常处理此种类型的库,但是像等需要解析文件的可能会查找失败。这种方案最终输出到上的文件也更少,省得再写了。目前来看,兼容性更强一些。

npm 包如何支持子路径?

目前看到了两种做法。

redux-saga

一种是像 redux-saga/effects 一样,其实际的资源文件在 lib/cjs/effects 下,但在根目录下放置一个同名的 effects 目录,目录下放置一个 package.json,相当于软链接一般,将 redux-saga/effects 视为一个私有库,由 main: ../lib/cjs/effects 指向实际的代码所在。 最终,以根目录下的 package.json 为基准,将此包发布出去。
npm 通过 npmFileMap 能够正常处理此种类型的库,但是像 gulp 等需要解析 node_modules 文件的可能会查找失败。

root/package.json

{
  "npmName": "redux-saga",
  "npmFileMap": [
    {
      "basePath": "/dist/",
      "files": [
        "*.js"
      ]
    }
  ]
}

effects/package.json

{
  "name": "redux-saga/effects",
  "private": true,
  "main": "../lib/effects.js",
  "module": "../es/effects.js",
  "jsnext:main": "../es/effects.js"
}
rxjs

另外一种是类似于 rxjs/operators 的方案,当 build 出 lib 目录后,直接复制一份 package.jsonlib 目录下,然后在 libnpm publish。这种方案最终输出到 npm 上的文件也更少,省得再写 .npmignore 了。目前来看,兼容性更强一些。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/90158.html

相关文章

  • 代码组织和部署 文件操作 node.js

    代码组织和部署 模块的路径解析规则 require支持/或者盘符的绝对路径,也支持./开头的相对地址同时require也支持第三种写法 内置模块 如果传递给require的函数是node.js的内置模块,将会不做路径解析,直接返回内部exports模块要导出的对象 node_modules目录 node.js定义一个node_modules存放模块,每次使用foo/bar的方式的时候,会先寻找该目...

    Cc_2011 评论0 收藏0
  • vue开发看这篇文章就够了

    摘要:注意此处获取的数据是更新后的数据,但是获取页面中的元素是更新之前的钩子函数说明组件已经更新,所以你现在可以执行依赖于的操作。钩子函数说明实例销毁 Vue -渐进式JavaScript框架 介绍 vue 中文网 vue github Vue.js 是一套构建用户界面(UI)的渐进式JavaScript框架 库和框架的区别 我们所说的前端框架与库的区别? Library 库,本质上是一...

    fsmStudy 评论0 收藏0
  • 后端知识点总结——NODE.JS(高级)

    摘要:阶段是事件循环的第一阶段习惯上往往都会设置数将回调函数添加到事件循环的阶段的队列中等待执行。 后端知识点总结——NODE.JS(高级) 1.Node入门: 什么是: 针对网络应用开发的平台主要特征: 基于Google的JavaScript运行时引擎V8 扩展了Node标准类库: TCP,同步或异步文件管理,HTTP 为什么使用Node: 可以在服务器端运行js: 现有前端团队可直...

    bovenson 评论0 收藏0
  • 使用gulp搭建一个传统的多页面前端项目的开发环境

    摘要:简介使用搭建一个传统的多页面前端项目的开发环境支持编译支持支持开发环境和打包生成支持文件变动自动刷新浏览器,是热更新改动无需刷新浏览器即可更新支持新增文件没无需重启,即可改动自动刷新浏览器支持命令生成雪碧图和对应支持,使用的插件是支持 gulp-easy github 1、简介 使用gulp搭建一个传统的多页面前端项目的开发环境 支持pug scss es6编译支持 支持开发环境和打...

    alighters 评论0 收藏0
  • 精读《Monorepo 的优势》

    摘要:引言本周精读的文章是。精读总的来说,虽然拆分子仓库拆分子包是进行项目隔离的天然方案,但当仓库内容出现关联时,没有任何一种调试方式比源码放在一起更高效。前端精读帮你筛选靠谱的内容。 1. 引言 本周精读的文章是 The many Benefits of Using a Monorepo。 现在介绍 Monorepo 的文章很多,可以分为如下几类:直接介绍 Lerna API 的;介绍如何...

    xcc3641 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<