最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • 小白发布typescript开发的npm包总结

    正文概述 掘金(Wen达)   2020-11-24   688

    前置知识点

    • 前往www.npmjs.com/ 注册一个npm账号
    • 如果设置了npm淘宝镜像,请先还原它,文章中默认已还原,发布完成后可再设置回来
    还原:npm config set registry https://registry.npmjs.org/
    设置:npm config set registry http://registry.npm.taobao.org/
    
    • npm过滤部分文件参考www.jianshu.com/p/6c2f5c31b…
    • 有关A包引入C1.0.0,B包引入C2.0.0的情况,npm做了优化,具体情况可以参考大佬们的文章。总之npm都帮你优化好了,一般我们不用处理。
    • 有时间可以了解一下liaolongdong.com/2019/01/24/…

    创建项目

    • 新建空文件,执行npm init,设置自己的版本和包名称
    • 修改package.json文件,我们将引入部分包:ntypescript用于打包,以前是tsc、typescript、假设我们开发一个时间显示工具包,我们引入moment

    下面是我个人的package.json文件,其中注意main、types文件,表示输出文件。更多配置请参考www.npmjs.com/package/nty…

    {
      "name": "wd-npm-demo",
      "version": "1.0.0",
      "description": "My npm package written in TS",
      "main": "index.js",
      "types": "index.d.ts",
      "scripts": {
        "build": "ntsc",
        "publish": "npm run build && npm publish",
        "tsp": "ntsc -p ./"
      },
      "author": "wen.da",
      "license": "ISC",
      "dependencies": {
        "moment": "^2.29.1",
      },
      "devDependencies": {
        "ntypescript": "1.201706190042.1",
        "typescript": "^4.1.2"
      },
      "file": [
        ".idea",
        "package-lock.json",
        "bin"
      ]
    }
    

    运行npm i

    • 新增tsconfig.json文件,解决编译提示问题"declaration": true

    可以设置"allowSyntheticDefaultImports": true来允许从没有默认导出的模块进行默认导入,或者 "skipDefaultLibCheck": true来跳过库文件的声明文件类型检查。 下面是我个人的,当然,你也可以使用最新的es

    {
      "compilerOptions": {
        "target": "es5",
        "module": "commonjs",
        "lib": ["es2017", "es7", "es6", "dom"],
        "declaration": true,
        "outDir": "dist",
        "strict": true,
        "jsx": "react",
        "allowSyntheticDefaultImports": true
      },
      "exclude": ["node_modules", "dist"]
    }
    
    • 根目录新建index.ts文件,我的文件如下
    import moment from 'moment'
    export function renderDate(val?: Date){
      if (!val) return '';
      return moment(val).format('YYYY-MM-DD')
    }
    export function renderTime(val?: Date){
      if (!val) return '';
      return moment(val).format('YYYY-MM-DD HH:mm:ss')
    }
    export function renderTimes(val?: Date){
      if (!val) return '';
      return moment(val).valueOf();
    }
    

    发布项目

    • 打开终端cd到该项目
    • npm login登录输入账号、密码、邮箱
    • 执行npm publish发布源码
    • 如果只发布dist包,请执行npm run build,生成来dist文件,在dist文件下创建package.json文件,然后发布dist包就行了
    • 在自己的项目中npm i wd-npm-demo或者自己发布的包,然后试试吧
    import { renderDate, renderTime, renderTimes } from 'wd-npm-demo';
    console.log(renderDate(new Date()))
    console.log(renderTime(new Date()))
    console.log(renderTimes(new Date()))
    

    小提示

    • 包名不能和已有的包名重复,撤销后24小时内该包名也不能用了
    • 我们还可以创建.md文件来写开发者语录
    • 版本升级记得改版本号
    • 72小时内可撤销npm unpublish wd-npm-demo --force
    • 为了保持npm的环境,删除我们自己的测试包

    起源地下载网 » 小白发布typescript开发的npm包总结

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元