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.
versionMust matchversionexactly>versionMust be greater thanversion>=versionetc<version<=version~version“Approximately equivalent to version” See semver^version“Compatible with version” See semver1.2.x1.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 - version2Same as>=version1 <=version2.range1 || range2Passes if either range1 or range2 are satisfied.git...See ‘Git URLs as Dependencies’ belowuser/repoSee ‘GitHub URLs’ belowtagA specific version tagged and published astagSeenpm-dist-tagpath/path/pathSee 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.4X-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.0Note that prereleases in the1.2.3version will be allowed, if they are greater than or equal tobeta.2. So,1.2.3-beta.4would be allowed, but1.2.4-beta.2would 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.0and above, patch updates for versions0.X >=0.1.0, and no updates for versions0.0.X.Many authors treat a
0.xversion as if thexwere the major “breaking-change” indicator.Caret ranges are ideal when an author may make breaking changes between
0.2.4and0.3.0releases, which is a common practice. However, it presumes that there will not be breaking changes between0.2.4and0.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.0Note that prereleases in the1.2.3version will be allowed, if they are greater than or equal tobeta.2. So,1.2.3-beta.4would be allowed, but1.2.4-beta.2would not, because it is a prerelease of a different[major, minor, patch]tuple.^0.0.3-beta:=>=0.0.3-beta <0.0.4Note that prereleases in the0.0.3version only will be allowed, if they are greater than or equal tobeta. So,0.0.3-pr.2would 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 ...
随机推荐
- 位运算 leecode.389. 找不同
//给定两个字符串 s 和 t,它们只包含小写字母. //字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母. //请找出在 t 中被添加的字母 char findTheDifferenc ...
- Doctype知识点总结
DOCTYPE是document type (文档类型) 的缩写.<!DOCTYPE >声明位于文档的最前面,处于标签之前,它不是html标签.主要作用是告诉浏览器的解析器使用哪种HTML ...
- 利用Python爬取网页图片
最近几天,研究了一下一直很好奇的爬虫算法.这里写一下最近几天的点点心得.下面进入正文: 你可能需要的工作环境: Python 3.6官网下载 我们这里以sogou作为爬取的对象. 首先我们进入搜狗图片 ...
- Linux增加开放端口号
Linux增加开放端口号 : 方法一:命令行方式 1. 开放端口命令: /sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT 2.保存:/etc/ ...
- 如何在sqlite3连接中创建并调用自定义函数
#!/user/bin/env python # @Time :2018/6/8 14:44 # @Author :PGIDYSQ #@File :CreateFunTest.py '''如何在sql ...
- 软工+C(11): 从命令行开始逐步培养编程能力(Java)
上一篇:助教指南,持续更新... // Version: 0.0.4 许多人,所不知道的是,每一种编程语言都有其对应的单元测试框架,对程序在不同阶段的测试环节也概念模糊.在实际动手编写程序许久之后才听 ...
- webpack code splitting
一.代码分割优化 const webpack = require('webpack'); const HtmlWebpackPlugin = require('html-webpack-plugin' ...
- 设置tomcat开机自启和后台运行
前言:程序登录遇到了问题,重启服务器上的tomcat后程序可以正常的使用,是通过进入bin目录,双击startup.bat运行启动的程序,此时会弹出启动窗口,而且该窗口不能关闭,这个窗口是tomcat ...
- Manifest merger failed : Attribute application@icon value=(@mipmap/ic_launcher) from AndroidManifest
情况是这样子的,导入一个比较老的项目(两年前),它依赖于一个 Libraray,已经先导入了 library,现在导入项目的时候出了错 (1) Android Studio 目前提供将 SDK包成 . ...
- 正则化(Regularization)本质
参考: http://www.cnblogs.com/maybe2030/p/9231231.html https://blog.csdn.net/wsj998689aa/article/detail ...