npm knowledge basics
npm inro
https://www.npmjs.com/
npm is the package manager for javascript
npm 为 nodejs默认的包管理工具, 为nodejs软件内置。
安装nodejs后, 使用 npm install xxx 可以安装第三方软件库
对于开发者自己建立一个npm工程, 使用npm init完成。
demo
各个参数解读,见官方文档:
https://docs.npmjs.com/files/package.json#version
{"name": "dijistra","version": "1.0.4","description": "a simple dijistra implementation of js version","main": "./dist/dijistra.umd.js","scripts": {"build": "webpack --config webpack-config.js","publish": "npm publish","lint": "eslint src"},"keywords": ["dijistra", "algorithm"],"author": "lightsong","license": "MIT","repository": {"type": "git","url": "https://github.com/fanqingsong/dijistra_algorithm"},"devDependencies": {"babel-core": "^6.9.1","babel-eslint": "^6.0.4","babel-loader": "^6.2.4","babel-plugin-syntax-dynamic-import": "^6.18.0","babel-preset-es2015": "^6.9.0","babel-preset-stage-2": "^6.5.0","css-loader": "^0.23.1","eslint": "^2.12.0","eslint-config-airbnb-base": "^3.0.1","eslint-plugin-babel": "^3.2.0","html-webpack-plugin": "^2.21.0","style-loader": "^0.13.1","webpack": "^3.5.4","webpack-dev-server": "^1.14.1"},"dependencies": {"pleasejs": "^0.4.2"}}
版本号含义
版本号的格式有多种, 支持各种需求场景。
默认 npm install --save-dev xxx 是按照兼容格式来 ^ x.xx.xx
https://docs.npmjs.com/files/package.json#dependency
See semver for more details about specifying version ranges.
version
Must matchversion
exactly>version
Must be greater thanversion
>=version
etc<version
<=version
~version
“Approximately equivalent to version” See semver^version
“Compatible with version” See semver1.2.x
1.2.0, 1.2.1, etc., but not 1.3.0http://...
See ‘URLs as Dependencies’ below*
Matches any version""
(just an empty string) Same as*
version1 - version2
Same as>=version1 <=version2
.range1 || range2
Passes if either range1 or range2 are satisfied.git...
See ‘Git URLs as Dependencies’ belowuser/repo
See ‘GitHub URLs’ belowtag
A specific version tagged and published astag
Seenpm-dist-tag
path/path/path
See Local Paths below
详细说明:
https://docs.npmjs.com/misc/semver
Hyphen Ranges X.Y.Z - A.B.C§
Specifies an inclusive set.
1.2.3 - 2.3.4
:=>=1.2.3 <=2.3.4
X-Ranges 1.2.x 1.X 1.2.* *§
Any of
X
,x
, or*
may be used to “stand in” for one of the numeric values in the[major, minor, patch]
tuple.
*
:=>=0.0.0
(Any version satisfies)1.x
:=>=1.0.0 <2.0.0
(Matching major version)1.2.x
:=>=1.2.0 <1.3.0
(Matching major and minor versions)Tilde Ranges ~1.2.3 ~1.2 ~1§
Allows patch-level changes if a minor version is specified on the comparator. Allows minor-level changes if not.
~1.2.3
:=>=1.2.3 <1.(2+1).0
:=>=1.2.3 <1.3.0
~1.2
:=>=1.2.0 <1.(2+1).0
:=>=1.2.0 <1.3.0
(Same as1.2.x
)~1
:=>=1.0.0 <(1+1).0.0
:=>=1.0.0 <2.0.0
(Same as1.x
)~0.2.3
:=>=0.2.3 <0.(2+1).0
:=>=0.2.3 <0.3.0
~0.2
:=>=0.2.0 <0.(2+1).0
:=>=0.2.0 <0.3.0
(Same as0.2.x
)~0
:=>=0.0.0 <(0+1).0.0
:=>=0.0.0 <1.0.0
(Same as0.x
)~1.2.3-beta.2
:=>=1.2.3-beta.2 <1.3.0
Note that prereleases in the1.2.3
version will be allowed, if they are greater than or equal tobeta.2
. So,1.2.3-beta.4
would be allowed, but1.2.4-beta.2
would not, because it is a prerelease of a different[major, minor, patch]
tuple.Caret Ranges ^1.2.3 ^0.2.5 ^0.0.4§
Allows changes that do not modify the left-most non-zero digit in the
[major, minor, patch]
tuple. In other words, this allows patch and minor updates for versions1.0.0
and above, patch updates for versions0.X >=0.1.0
, and no updates for versions0.0.X
.Many authors treat a
0.x
version as if thex
were the major “breaking-change” indicator.Caret ranges are ideal when an author may make breaking changes between
0.2.4
and0.3.0
releases, which is a common practice. However, it presumes that there will not be breaking changes between0.2.4
and0.2.5
. It allows for changes that are presumed to be additive (but non-breaking), according to commonly observed practices.
^1.2.3
:=>=1.2.3 <2.0.0
^0.2.3
:=>=0.2.3 <0.3.0
^0.0.3
:=>=0.0.3 <0.0.4
^1.2.3-beta.2
:=>=1.2.3-beta.2 <2.0.0
Note that prereleases in the1.2.3
version will be allowed, if they are greater than or equal tobeta.2
. So,1.2.3-beta.4
would be allowed, but1.2.4-beta.2
would not, because it is a prerelease of a different[major, minor, patch]
tuple.^0.0.3-beta
:=>=0.0.3-beta <0.0.4
Note that prereleases in the0.0.3
version only will be allowed, if they are greater than or equal tobeta
. So,0.0.3-pr.2
would be allowed.
npm发布
https://www.jianshu.com/p/d9fb02a891d9
先到官网上注册, 然后使用邮箱确认。
本地登录,输入完用户名,密码,邮箱后没有错误信息就完成了。
$ npm adduser
Username: your name
Password: your password
Email: (this IS public) your email
要设置一个版本号
npm社区版本号规则采用的是semver(语义化版本),主要规则版本格式:主版本号.次版本号.修订号,版本号递增规则如下:
- 主版本号:当你做了不兼容的 API 修改,
- 次版本号:当你做了向下兼容的功能性新增,
- 修订号:当你做了向下兼容的问题修正。
先行版本号及版本编译信息可以加到“主版本号.次版本号.修订号”的后面,作为延伸。
发布
npm publish
// 需要设置库URLnpm config set registry=http://registry.npmjs.org
例子:
https://www.npmjs.com/package/dijistra
npm knowledge basics的更多相关文章
- Oracle DBA神器之Toad
很早就听说Toad功能很强大,一直没有使用过,因为PLSQL Developer就很好用.前几天看见同事优化Oracle就是用的Toad,有一些很强大的管理功能,于是再一次对Toad产生兴趣,收集了一 ...
- [转载]Frontend Knowledge Structure
https://github.com/JacksonTian/fks http://code.csdn.net/news/2819224 本文为大家整理了一系列关于JavaScript的常用工具,包括 ...
- npm run dev error
Please try: rm -rf node_modules rm package-lock.json npm cache clear --force npm install windows和lin ...
- Entity Framework Tutorial Basics(1):Introduction
以下系列文章为Entity Framework Turial Basics系列 http://www.entityframeworktutorial.net/EntityFramework5/enti ...
- ACM-ICPC2018沈阳网络赛 Lattice's basics in digital electronics(模拟)
Lattice's basics in digital electronics 44.08% 1000ms 131072K LATTICE is learning Digital Electron ...
- Basics of Algorithmic Trading: Concepts and Examples
https://www.investopedia.com/articles/active-trading/101014/basics-algorithmic-trading-concepts-and- ...
- upc组队赛15 Lattice's basics in digital electronics【模拟】
Lattice's basics in digital electronics 题目链接 题目描述 LATTICE is learning Digital Electronic Technology. ...
- Getting Started With Node and NPM
Getting Started with Node and NPM Let's start with the basics. Install Node.js: https://nodejs.org.
- npx & yarn & npm
npx & yarn & npm React Redux App https://reactjs.org/ https://github.com/facebook/create-rea ...
随机推荐
- C#格式化
格式化表示的一般格式 { N [ , M ] [ :格式码 ] } N: 指定参数序列中的输出序号,比如{0} , {1}, {2}等. M: 指定参数输出的最小长度. 如果参数长度小于M,则空格填 ...
- Django-1- urls的路由配置, 命名, 重定向, path及re_path
1-项目目录下配置(path方法) 这里的访问路径可以是127.0.0.1:8000/index/ 2-APP目录下配置(path方法) 这里的访问路径可以是127.0.0.1:8000/t ...
- 返回表对象的方法之一--bulk collect into
1.创建表对象的类型(oracle Types类目录下) create or replace type obj_table1 as object( xzq nvarchar2(19), mj numb ...
- Vcenter 账户密码过期设置修改
Vcenter 安装完后,账户的密码过期时间是90天,如果不进行修改90天后就会过期,不能登录,这样对日常的定时任务影响比较大. 如何进行修改呢? 对于Vcenter 6.0 ,修改密码过期设置只能使 ...
- 在Windows7中的DPI与主题的问题
测试环境Windows7x64,vb6.0 测试在XP系统下,DPI计算似乎没问题 Screen.TwipsPerPixelX=1440/DPI=1440/96=15Screen.TwipsPerPi ...
- react-router(v4)
概要 开发单页应用, 首先绕不开的内容就是路由, react router v4 版本是最新的版本. 和之前的版本相比, 成熟了很多, 也简单了很多, 使用起来更加方便. 核心 component r ...
- 算法学习之BFS、DFS入门
算法学习之BFS.DFS入门 0x1 问题描述 迷宫的最短路径 给定一个大小为N*M的迷宫.迷宫由通道和墙壁组成,每一步可以向相邻的上下左右四格的通道移动.请求出从起点到终点所需的最小步数.如果不能到 ...
- 【MySQL 读书笔记】当我们在执行该查询语句的时候我们在干什么
看了非常多 MySQL 相关的书籍和文章,没有看到过如此优秀的专栏.所以未来一段时间我会梳理读完该专栏的所学所得. 当我们在执行该查询语句的时候我们在干什么 mysql> select * fr ...
- hashChange & url change & QRCode & canvas to image
hashChange & url change & QRCode & canvas to image "use strict"; /** * * @auth ...
- 浅析Java数据类型
前言: 该系列会辅以MindMap进行说明. 下面会贴两张我不同时期画的Java数据类型的思维导图,本篇主要侧重于Java的8种基本类型 MindMap-1 这张MindMap主要是根据 菜鸟教程+参 ...