日更挑战-发布Typescript项目到npmjs

2021-05-21  本文已影响0人  愿你我皆是黑马

越不懂的越爱装
大家都同等:IT世界没有难不难,只有是否了解过

挑战目录

昨天看的多模块打包的时候发现这个部分的功能写的耦合性太高,不利于新项目的的使用。本来是打算重写一下的。不知怎么的,突然想写成npmjs库。由于大部分空闲时间都写这个去了。今天就随便写一下Typescript发布到npmjs的吧。

什么是Npmjs

是一个发布js或ts模块库的平台。发布上去的模块库可以通过平时开发的包管理工具npm,通过命令 npm install xxx 命令获取使用。
类似iOS使用的Cocoapods,JAVA和Android使用的maven


如何发布到Npmjs

  1. 注册npmjs账号 npmjs官网
  2. 创建一个npm项目
1. 创建一个空的文件夹,在命令行进入到该文件夹路径下
2. 创建npm项目
   1.快速创建法:npm init -y
   2.自定义创建的信息:npm init
       name:发布的包名,默认是上级文件夹名。不得与现在npm中的包名重复。包名不能有大写字母/空格/下滑线!
       version:你这个包的版本,默认是1.0.0。对于npm包的版本号有着一系列的规则,模块的版本号采用X.Y.Z的格式,具体体现为:
                       1、修复bug,小改动,增加z。
                       2、增加新特性,可向后兼容,增加y
                     3、有很大的改动,无法向下兼容,增加x
       description:项目简介
       mian:入口文件,默认是Index.js,可以修改成自己的文件 
       scripts:包含各种脚本执行命令
       test:测试命令。
       author:写自己的账号名
       license:这个直接回车,开源文件协议吧,也可以是MIT,看需要吧。
   任何一种方法创建出来的格式都类似如下:
  {
      "name": "more-moudle",
      "version": "1.0.0",
      "description": "",
      "main": "dist/index.js", //之后添加的::指定导入使用时入口文件
      "types": "dist/index.d.ts", //之后添加的::指定导入使用时入口文件d.ts
      "scripts": {
          "build": "npx tsc -p ." //之后添加的::编译ts文件
      },
      "keywords": [],
      "author": "",
      "license": "ISC",
      "files": [  //之后添加的::指定发布到npmjs的文件夹。由于写的是TypeScript库。为了防止发布所以文件,所以需要添加
      "/dist"
      ]
  }
  1. 第一次发布时
    在命令行输入npm adduser,提示输入注册的账号,密码和邮箱
  2. 非第一次发布包(可以省略,除非提示需要登录)
    在终端输入npm login,然后输入你注册的账号和密码,和邮箱
  3. 发包
    在命令行输入npm publish
    PS:类似于gie的.gitignore文件可以列举不推送的文件。npmjs也有.npmignore可以列举不不发布文件

如何撤销发布的包

由于过一次撤销发布包导致很多引用的项目出现问题,npmjs现不支持撤销发布的一天以内的包。
删除npm市场的包同名的24小时后才能重新发布。

终端执行 npm unpublish
例如:
1、npm unpublish z-tool@1.0.0 删除某个版本
2、npm unpublish z-tool --force 删除整个npm市场的包


支持Typescript

  1. 在命令行输入 npx tsc --init 将会生成tsconfig.json配置文件

  2. 修改package.json。

    • "main":"dist/index.js" //指定使用该库时,使用该库的名字默认导入的文件

    • "types":"dist/index.d.ts" //指定使用该库时,使用该库的名字默认导入的Ts使用的d.ts文件

    • "scripts":{
      "build":"npx tsc -p ." //添加ts编译命令,会自动找tsconfig.json配置文件编译输出
      }

  3. 添加tsconfig.json配置。(tsconfig.json中会存在对应的注释掉的配置及相应解释,更多配置可以看相应解释)

    源码文件夹-> "rootDir": "./src",

    编译输出文件夹-> "outDir": "./dist",

上一篇下一篇

猜你喜欢

热点阅读