资讯专栏INFORMATION COLUMN

npm入手笔记0x004-npm命令及配置文件说明(未完善)

mzlogin / 704人阅读

摘要:概述本篇文章承接上文,记录的的配置和命令的详细说明。的配置说明项目名称,的时候就是使用这个。案例说明版本号,符合的版本规范的版本号,默认从开始。

0x000 概述

本篇文章承接上文,记录的package.json的配置和npm命令的详细说明。

0x001 package.json的配置

name

说明:项目名称,npm install的时候就是使用这个name

案例:lodash@followwinter/lodash

version

说明:版本号,符合npm的版本规范的版本号,默认从1.0.0开始。

案例:1.0.02.0.1

description

说明:项目的简介,如果不写会默认读去README.md的第一样作为npmjs搜索时候的简介

案例:这是一个好项目

keywords

说明:关键词

案例:lodashjs

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.jsonmianindex。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.x1.2.* 版本

http://...http地址

*:任意版本

"":任意版本

version1 - version2: 在version1version2之间,包含version1version2

range1 || range2:在范围1或者范围2之间

git...:git地址

user/repouser/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地址格式:://[[:]@][:][:][/][# | #semver:]

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 installnpm start,如果是自定义指令,则需要使用npm run 来调用,比如npm run build,会先执行npm install,再执行npm test,最后执行npm publish --access public.

0x002 npm命令

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=] [--scope=<@scope>]

0x003 总结

多看官方文档才是王道,知道如何找到自己想找的资料才是真正的办法,死命去记是没有办法的。

0x004 资源

项目github

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/88525.html

相关文章

  • npm入手笔记0x001-项目初始化和包增删改

    摘要:引用并执行如果安装出错,比如写错了包名,将会发生以下事情命令行报错使用可以自己新建一个文件编写也可以直接使用来初始化一个该命令是一个交互式命令,可以根据提示输入相应信息生成相应的,命令提示后面的中为提示内容,可以选择一路,然后再去修改。 0x001 概述 npm是一个包管理工具,本文章基本算是对官方文档的解读、翻译和实操笔记,顺便说明使用npm中的坑。 0x002 安装Node.js ...

    Baoyuan 评论0 收藏0
  • npm入手笔记0x003-一些常见问题记录

    摘要:如何选择就如果上面所有,需要打包进生产环境就保存到,只是在开发或者打包的时候使用的就保存到即可。提示不能发布当前版本解决方案不能发布已经发布的版本,修改一下版本号就可以了想不到了,想到了再写资源项目 0x001 概述 本篇文章承接上文,记录的是一些使用过程中的疑惑 0x001 墙的原因使得包下载太慢 解决方案:使用淘宝cnpm,推荐使用cnpm,因为如果修改npm仓库,将会导致无法发布...

    luffyZh 评论0 收藏0
  • npm入手笔记0x005-v2和v3包依赖管理的不同

    摘要:概述本篇文章承接上文,记录的和版本在包管理方面的异同,基于阅读官方原文整理简化。此时的文件夹如下所示包的复制和取消复制假设我们有一个项目依赖添加依赖依赖,此时添加依赖依赖,此时升级依赖依赖,此时升级依赖依赖,此时执行查看文件夹资源项目 0x000 概述 本篇文章承接上文,记录的v2和v3版本在包管理方面的异同,基于阅读官方原文整理简化。 0x001 v2管理方式 假设有模块A、B、C,...

    ssshooter 评论0 收藏0
  • npm入手笔记0x002-发布自己的Node.js模块其版本管理

    摘要:概述本篇文章承接上文,记录的是如何发布自己的模块编写模块新建项目并初始化编写模块代码发布模块测试模块命名空间每个人都可以发布自己的包,难免会有包名相同的情况,如果想要使 0x001 概述 本篇文章承接上文,记录的是如何发布自己的Node.js模块 0x002 编写模块 新建项目并初始化 $ mkdir 0x005-publish-own-module $ cd 0x005-publis...

    mrli2016 评论0 收藏0
  • 入手thinkjs,学习笔记

    摘要:最近刚刚学习了一个的开发框架,最重要的是可以用开发传送门以下是学习过程中的笔记上面时全局安装完成后用检查是否成功创建了一个名为的项目,然后进入目录,安装依赖,启动项目,浏览器打开就可以看到页面了。 最近刚刚学习了thinkjs--一个node的MVC开发框架,最重要的是可以用es6/es7开发【传送门】 以下是学习过程中的笔记: npm install thinkjs@2 -g --v...

    shuibo 评论0 收藏0

发表评论

0条评论

mzlogin

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<