从零使用TypeScript开发项目打包发布到npm
作者:石小明 发布时间:2024-05-02 16:16:28
前言
typescript作为未来前端开发的主流框架,在前端开发的过程中也会越来越主要,相信这篇文章会对你有很大的帮助!
开发环境搭建
创建ming-npm-package文件夹
我在桌面上创建了一个ming-npm-package的文件夹,然后在编辑器里面打开
初始化项目
npm init
通过npm init 初始化项目来创建用户package.json文件
也可以npm init -y 这个是使用的默认的配置,我个人使用的是npm init
设置配置项
package name: (ming-npm-package)
version: (1.0.0)
description: use ts
//这下边的entry point: 这个是指定的最后使用的文件,而不是编译文件
entry point: (index.js) ./dist/ming-npm-package.js
test command:
git repository:
keywords: typescript
author: xiaoming
license: (ISC) MIT
About to write to C:\Users\明\Desktop\ming-npm-package\package.json:
{
"name": "ming-npm-package",
"version": "1.0.0",
"description": "use ts",
"main": "./dist/ming-npm-package.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [
"typescript"
],
"author": "xiaoming",
"license": "MIT"
}
Is this OK? (yes)
这就是我设置的配置项,没问题就可以输入yes然后回车了
创建tsconfig.json文件
tsc --init
就会生成一个tsconfig.json文件
修改tsconfig.json默认文件
把这两个注释打开
"declaration": true, //打包之后是否生成声明文件
"outDir": "./dist", //输出文件
添加exclude,忽略dist文件
在打包的时候会排除这里面指定的路径文件
"exclude": [
"./dist"
]
安装依赖
npm install typescript -D
开始编码
创建ming-npm-package.ts文件
用来编写功能
const arrayMap = (array: [], callback:(item: any,index: number, arr: any[]) => any): any => {
let i = -1
const len = array.length
let resArray = []
while (++i < len){
resArray.push(callback(array[i],i,array))
}
return resArray
}
export = arrayMap
对代码进行编译
tsc
此时我们的项目就会多了一个dist目录
登录npm
大家没有npm账号的可以注册一个
这个是网址
https://www.npmjs.com
然后在编辑器终端里面输入
npm login
接着就会出来用户名、密码、邮箱这些依次填一下
创建.npmignore文件
在项目根目录里创建一个.npmjgnore
这个其实和.gitignor差不多,就是你发npm包的时候,希望哪些文件或者文件夹不发到这个npm上
这里不用写的node_modules,这是默认忽略的
版本号
在package.json里面版本号,
每发布一次都要修改一下
发布
npm publish
发布成功
安装使用
我们把package.json文件里面的name改成:
ming-npm
目的是 我们要安装的包不能和package.json里面的包名字是一样的
然后再安装一下我们这个包:
npm install ming-npm-package@1.0.1
跟其他的包一样 npm install 包名
安装成功:
再次发布
如果需要再次发布一定要改个版本号,改成之前的名字
然后再tsc对代码进行编译
npm publish 进行发布
源码
这个是我的代码
https://github.com/shifengming/ming-npm-package
来源:https://segmentfault.com/a/1190000021740976


猜你喜欢
- demo: <div v-for="item in temps" :key="
- 代码如下: function HandleTabKey(evt) {
- 使用access数据库时可能用到的数据转换:类型转换涵数:函数 返回类型 expression 参数范围CBool Boolean 任何有效
- 尽管asyncio库是使用单线程来实现协程的,但是它还是并发的,乱序执行的。可以说是单线程的调度系统,并且由于执行时有延时或者I/O中断等因
- 前言xml课的第三第四个作业都是用java编程来实现xml dom的一些转换, 因为自己没怎么学过java,因此和老师说了下想用python
- 本文将详细解释这些函数的使用方法。首先,我们介绍Python语言中类似于Windows系统的dir命令的列出文件功能,然后描述如何测试一个文
- 知识补充表单简介(来自Mr._Dang)action:提交的地址method:提交的方式 get: 参数是在url中的,不安全,传输量比较少
- 一、下载地址Apache 5.4 —— httpd-2.4.4-win32.zipPHP 5.4 —— php-5.4.15-Win32-V
- lambda 函数Python 支持一种有趣的语法,它允许你快速定义单行的最小函数。这些叫做 lambda 的函数,是从 Lisp 借用来的
- 今天照着样例搞了下tensorboard,发现自己无法显示scalar,而graph却可以正常显示。出现这种情况就说明,tensorfboa
- #! /usr/bin/env python#coding=utf-8#实现哈希表(线性地址再散列)def ChangeKey(key,m,
- query方法在 pandas 中,支持把字符串形式的查询表达式传入 query 方法来查询数据,其表达式的执行结果必须返回布尔列表。在进行
- 本文实例为大家分享了wxPython色环电阻计算器的具体代码,供大家参考,具体内容如下import wx # 导入wxPythonclass
- 本文实例为大家分享了linux采用binary方式安装mysql的具体步骤,供大家参考,具体内容如下1、下载binary文件在官网上下载 m
- 背景工作中,当我们需要对字符串按照某个字符串切分成字符串数组数时,常用到strings.Split()最近在使用过程中踩到了个坑,后对踩坑原
- 工作中,我们经常会遇到数据异常,比如说浏览量突增猛降,交易量突增猛降,但是这些数据又不是符合正太分布的,如果用几倍西格玛就不合适,那么我们如
- 先看看实现效果图, 模拟拖拽最终效果和在桌面上移动文件夹的效果类似原理介绍鼠标按下时,拖拽开始。鼠标移动时,被拖拽元素跟着鼠标一起移动。鼠标
- JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,它使得人们很容易的进行阅读和编写。同时也方便了
- 图的实现所谓图就是节点及其连接关系的集合。所以可以通过一个一维数组表示节点,外加一个二维数组表示节点之间的关系。//图的矩阵实现typede
- 序言是我太久没发了吗?昨天没人看,那么今天来点特别的~不仅把好看的视频全部pa下来,咱们还要实现自动评论、点赞、关注三连~宝,你也可以顺手给