摘要:概述本篇文章承接上文,记录的的配置和命令的详细说明。的配置说明项目名称,的时候就是使用这个。案例说明版本号,符合的版本规范的版本号,默认从开始。
0x000 概述
本篇文章承接上文,记录的package.json的配置和npm命令的详细说明。
0x001 package.json的配置
name:
说明:项目名称,npm install的时候就是使用这个name。
案例:lodash、@followwinter/lodash
version:
说明:版本号,符合npm的版本规范的版本号,默认从1.0.0开始。
案例:1.0.0,2.0.1
description :
说明:项目的简介,如果不写会默认读去README.md的第一样作为npmjs搜索时候的简介
案例:这是一个好项目
keywords:
说明:关键词
案例:lodash、js
homepage:
说明:项目主页
案例:http://lodashjs.com/
license:
说明:协议
案例:BSD-3-Clause
main:
说明:模块ID
案例:如果你的模块名为foo,如果一个用户使用require("foo"),就会返回一个你export出来的主对象。例如之前我们export一个printMsg,我们直接@followwinter/0x007-local-global-diff1就得到了一个对象,是因为我们指定了@followwinter/0x007-local-global-diff1中的package.json的mian为index。js。
// @followwinter/0x007-local-global-diff1/package.json { "name": "@followwinter/0x007-local-global-diff1", "version": "1.0.2", "description": "", "main": "index.js", "scripts": { "test": "echo "Error: no test specified" && exit 1" }, "author": "", "license": "ISC" } // @followwinter/0x008-local-global-diff2/index.js var myModule = require("@followwinter/0x007-local-global-diff1"); console.log(myModule); myModule.printMsg();
dependencies:
说明:项目的依赖库
version: 必须等于该版本
>version:必须大于该版本
>=version: 必须大于等于该版本
<=version: 必须小于等于该版本
~version: 大约等于该版本
^version: 和该版本可兼容的版本
1.2.x:1.2.* 版本
http://...:http地址
*:任意版本
"":任意版本
version1 - version2: 在version1到version2之间,包含version1和version2
range1 || range2:在范围1或者范围2之间
git...:git地址
user/repo:user/repo地址
tag: 该tag的版本
path/path/path 本地地址
案例:
{ "dependencies" : { "foo" : "1.0.0 - 2.9999.9999" , "bar" : ">=1.0.2 <2.1.2" , "baz" : ">1.0.2 <=2.3.4" , "boo" : "2.0.1" , "qux" : "<1.0.0 || >=2.3.1 <2.4.5 || >=2.5.2 <3.0.0" , "asd" : "http://asdf.com/asdf.tar.gz" , "til" : "~1.2" , "elf" : "~1.2.3" , "two" : "2.x" , "thr" : "3.3.x" , "lat" : "latest" , "dyl" : "file:../dyl" } }
特殊说明
git地址格式:
git地址示例:
git+ssh://git@github.com:npm/npm.git#v1.0.27 git+ssh://git@github.com:npm/npm#semver:^5.0 git+https://isaacs@github.com/npm/npm.git git://github.com/npm/npm.git#v1.0.27 //现在还可以直接这么写 { "name": "foo", "version": "0.0.0", "dependencies": { "express": "expressjs/express", "mocha": "mochajs/mocha#4727d357ea", "module": "user/repo#feature/branch" } }
本地地址
../foo/bar ~/foo/bar ./foo/bar /foo/bar // 以下写法更优
{
"name": "baz",
"dependencies": {
"bar": "file:../foo/bar"
}
}
devDependencies:
说明:开发依赖
案例:同上
bin:
说明:可执行目录
案例:
//`npm installl -g`的时候回将`cli.js`复制到`/usr/local/bin/myapp`,就可以使用`myapp`作为命令了,比如`webpack` { "bin" : { "myapp" : "./cli.js" } }
scripts:
说明:自定义命令,也可以覆盖自定义命令
默认值:
"start": "node server.js":执行server.js
"install": "node-gyp rebuild":安装依赖
自定义指令:
"test":"jtest", "build":"npm install && npm test && npm publish --access public"
执行自定义指令:
如果是覆盖默认指令,直接使用默认指令便可,比如npm install、npm start,如果是自定义指令,则需要使用npm run
version:版本
npm version [| major | minor | patch | premajor | preminor | prepatch | prerelease | from-git] "npm [-v | --version]" 查看`npm`版本 "npm view version" 查看某个包的版本 "npm ls" 列出当前依赖的包
cache:缓存
"npm cache clean []" 清除缓存 aliases: npm cache clear, npm cache rm
dedupe:重构
"npm dedupe" 重新整理依赖包架构 "npm ddp" aliases: find-dupes, ddp // 执行前 +-- b <-- depends on c@1.0.x | `-- c@1.0.3 `-- d <-- depends on c@~1.0.9 `-- c@1.0.10 //执行后 +-- b +-- d `-- c@1.0.10
init:初始化
npm init [-f|--force|-y|--yes] 加了参数就不会提示任何信息了
install:安装
npm install (with no args, in package dir) npm install [<@scope>/]npm install [<@scope>/] @ npm install [<@scope>/] @ npm install [<@scope>/] @ npm install : / npm install npm install npm install npm install alias: npm i common options: [-P|--save-prod|-D|--save-dev|-O|--save-optional] [-E|--save-exact] [-B|--save-bundle] [--no-save] [--dry-run]
upinstall:卸载
npm uninstall [<@scope>/][@ ]... [-S|--save|-D|--save-dev|-O|--save-optional|--no-save] aliases: remove, rm, r, un, unlink
update:更新
npm update [-g] [...] aliases: up, upgrade
publish:发布
npm publish [| ] [--tag ] [--access ] Publishes "." if no argument supplied Sets tag "latest" if no --tag specified
unpublish:取消发布
npm unpublish [<@scope>/][@ ]
whoami:包所属
npm whoami [--registry]
dist-tag:加tag
npm dist-tag add@ [ ] npm dist-tag rm npm dist-tag ls [ ] aliases: dist-tags
config:设置配置
npm config set[-g|--global] npm config get npm config delete npm config list [-l] npm config edit npm get npm set [-g|--global] aliases: c
adduser:添加用户
npm adduser [--registry=url] [--scope=@orgname] [--always-auth] [--auth-type=legacy] aliases: login, add-user
logout:退出用户
npm logout [--registry=0x003 总结] [--scope=<@scope>]
多看官方文档才是王道,知道如何找到自己想找的资料才是真正的办法,死命去记是没有办法的。
0x004 资源项目github
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/88525.html
摘要:引用并执行如果安装出错,比如写错了包名,将会发生以下事情命令行报错使用可以自己新建一个文件编写也可以直接使用来初始化一个该命令是一个交互式命令,可以根据提示输入相应信息生成相应的,命令提示后面的中为提示内容,可以选择一路,然后再去修改。 0x001 概述 npm是一个包管理工具,本文章基本算是对官方文档的解读、翻译和实操笔记,顺便说明使用npm中的坑。 0x002 安装Node.js ...
摘要:如何选择就如果上面所有,需要打包进生产环境就保存到,只是在开发或者打包的时候使用的就保存到即可。提示不能发布当前版本解决方案不能发布已经发布的版本,修改一下版本号就可以了想不到了,想到了再写资源项目 0x001 概述 本篇文章承接上文,记录的是一些使用过程中的疑惑 0x001 墙的原因使得包下载太慢 解决方案:使用淘宝cnpm,推荐使用cnpm,因为如果修改npm仓库,将会导致无法发布...
摘要:概述本篇文章承接上文,记录的和版本在包管理方面的异同,基于阅读官方原文整理简化。此时的文件夹如下所示包的复制和取消复制假设我们有一个项目依赖添加依赖依赖,此时添加依赖依赖,此时升级依赖依赖,此时升级依赖依赖,此时执行查看文件夹资源项目 0x000 概述 本篇文章承接上文,记录的v2和v3版本在包管理方面的异同,基于阅读官方原文整理简化。 0x001 v2管理方式 假设有模块A、B、C,...
摘要:概述本篇文章承接上文,记录的是如何发布自己的模块编写模块新建项目并初始化编写模块代码发布模块测试模块命名空间每个人都可以发布自己的包,难免会有包名相同的情况,如果想要使 0x001 概述 本篇文章承接上文,记录的是如何发布自己的Node.js模块 0x002 编写模块 新建项目并初始化 $ mkdir 0x005-publish-own-module $ cd 0x005-publis...
摘要:最近刚刚学习了一个的开发框架,最重要的是可以用开发传送门以下是学习过程中的笔记上面时全局安装完成后用检查是否成功创建了一个名为的项目,然后进入目录,安装依赖,启动项目,浏览器打开就可以看到页面了。 最近刚刚学习了thinkjs--一个node的MVC开发框架,最重要的是可以用es6/es7开发【传送门】 以下是学习过程中的笔记: npm install thinkjs@2 -g --v...
阅读 862·2023-04-26 02:16
阅读 1159·2019-08-30 15:55
阅读 2742·2019-08-30 15:53
阅读 3338·2019-08-29 15:38
阅读 2829·2019-08-29 13:42
阅读 1932·2019-08-26 13:34
阅读 1788·2019-08-26 10:10
阅读 3019·2019-08-23 14:40