摘要:概述本篇文章承接上文,記錄的的配置和命令的詳細(xì)說(shuō)明。的配置說(shuō)明項(xiàng)目名稱(chēng),的時(shí)候就是使用這個(gè)。案例說(shuō)明版本號(hào),符合的版本規(guī)范的版本號(hào),默認(rèn)從開(kāi)始。
0x000 概述
本篇文章承接上文,記錄的package.json的配置和npm命令的詳細(xì)說(shuō)明。
0x001 package.json的配置
name:
說(shuō)明:項(xiàng)目名稱(chēng),npm install的時(shí)候就是使用這個(gè)name。
案例:lodash、@followwinter/lodash
version:
說(shuō)明:版本號(hào),符合npm的版本規(guī)范的版本號(hào),默認(rèn)從1.0.0開(kāi)始。
案例:1.0.0,2.0.1
description :
說(shuō)明:項(xiàng)目的簡(jiǎn)介,如果不寫(xiě)會(huì)默認(rèn)讀去README.md的第一樣作為npmjs搜索時(shí)候的簡(jiǎn)介
案例:這是一個(gè)好項(xiàng)目
keywords:
說(shuō)明:關(guān)鍵詞
案例:lodash、js
homepage:
說(shuō)明:項(xiàng)目主頁(yè)
案例:http://lodashjs.com/
license:
說(shuō)明:協(xié)議
案例:BSD-3-Clause
main:
說(shuō)明:模塊ID
案例:如果你的模塊名為foo,如果一個(gè)用戶(hù)使用require("foo"),就會(huì)返回一個(gè)你export出來(lái)的主對(duì)象。例如之前我們export一個(gè)printMsg,我們直接@followwinter/0x007-local-global-diff1就得到了一個(gè)對(duì)象,是因?yàn)槲覀冎付?b>@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:
說(shuō)明:項(xiàng)目的依賴(lài)庫(kù)
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" } }
特殊說(shuō)明
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 //現(xiàn)在還可以直接這么寫(xiě) { "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 // 以下寫(xiě)法更優(yōu)
{
"name": "baz",
"dependencies": {
"bar": "file:../foo/bar"
}
}
devDependencies:
說(shuō)明:開(kāi)發(fā)依賴(lài)
案例:同上
bin:
說(shuō)明:可執(zhí)行目錄
案例:
//`npm installl -g`的時(shí)候回將`cli.js`復(fù)制到`/usr/local/bin/myapp`,就可以使用`myapp`作為命令了,比如`webpack` { "bin" : { "myapp" : "./cli.js" } }
scripts:
說(shuō)明:自定義命令,也可以覆蓋自定義命令
默認(rèn)值:
"start": "node server.js":執(zhí)行server.js
"install": "node-gyp rebuild":安裝依賴(lài)
自定義指令:
"test":"jtest", "build":"npm install && npm test && npm publish --access public"
執(zhí)行自定義指令:
如果是覆蓋默認(rèn)指令,直接使用默認(rèn)指令便可,比如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" 查看某個(gè)包的版本 "npm ls" 列出當(dāng)前依賴(lài)的包
cache:緩存
"npm cache clean []" 清除緩存 aliases: npm cache clear, npm cache rm
dedupe:重構(gòu)
"npm dedupe" 重新整理依賴(lài)包架構(gòu) "npm ddp" aliases: find-dupes, ddp // 執(zhí)行前 +-- b <-- depends on c@1.0.x | `-- c@1.0.3 `-- d <-- depends on c@~1.0.9 `-- c@1.0.10 //執(zhí)行后 +-- b +-- d `-- c@1.0.10
init:初始化
npm init [-f|--force|-y|--yes] 加了參數(shù)就不會(huì)提示任何信息了
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:發(fā)布
npm publish [| ] [--tag ] [--access ] Publishes "." if no argument supplied Sets tag "latest" if no --tag specified
unpublish:取消發(fā)布
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:設(shè)置配置
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:添加用戶(hù)
npm adduser [--registry=url] [--scope=@orgname] [--always-auth] [--auth-type=legacy] aliases: login, add-user
logout:退出用戶(hù)
npm logout [--registry=0x003 總結(jié)] [--scope=<@scope>]
多看官方文檔才是王道,知道如何找到自己想找的資料才是真正的辦法,死命去記是沒(méi)有辦法的。
0x004 資源項(xiàng)目github
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/88525.html
摘要:引用并執(zhí)行如果安裝出錯(cuò),比如寫(xiě)錯(cuò)了包名,將會(huì)發(fā)生以下事情命令行報(bào)錯(cuò)使用可以自己新建一個(gè)文件編寫(xiě)也可以直接使用來(lái)初始化一個(gè)該命令是一個(gè)交互式命令,可以根據(jù)提示輸入相應(yīng)信息生成相應(yīng)的,命令提示后面的中為提示內(nèi)容,可以選擇一路,然后再去修改。 0x001 概述 npm是一個(gè)包管理工具,本文章基本算是對(duì)官方文檔的解讀、翻譯和實(shí)操筆記,順便說(shuō)明使用npm中的坑。 0x002 安裝Node.js ...
摘要:如何選擇就如果上面所有,需要打包進(jìn)生產(chǎn)環(huán)境就保存到,只是在開(kāi)發(fā)或者打包的時(shí)候使用的就保存到即可。提示不能發(fā)布當(dāng)前版本解決方案不能發(fā)布已經(jīng)發(fā)布的版本,修改一下版本號(hào)就可以了想不到了,想到了再寫(xiě)資源項(xiàng)目 0x001 概述 本篇文章承接上文,記錄的是一些使用過(guò)程中的疑惑 0x001 墻的原因使得包下載太慢 解決方案:使用淘寶cnpm,推薦使用cnpm,因?yàn)槿绻薷膎pm倉(cāng)庫(kù),將會(huì)導(dǎo)致無(wú)法發(fā)布...
摘要:概述本篇文章承接上文,記錄的和版本在包管理方面的異同,基于閱讀官方原文整理簡(jiǎn)化。此時(shí)的文件夾如下所示包的復(fù)制和取消復(fù)制假設(shè)我們有一個(gè)項(xiàng)目依賴(lài)添加依賴(lài)依賴(lài),此時(shí)添加依賴(lài)依賴(lài),此時(shí)升級(jí)依賴(lài)依賴(lài),此時(shí)升級(jí)依賴(lài)依賴(lài),此時(shí)執(zhí)行查看文件夾資源項(xiàng)目 0x000 概述 本篇文章承接上文,記錄的v2和v3版本在包管理方面的異同,基于閱讀官方原文整理簡(jiǎn)化。 0x001 v2管理方式 假設(shè)有模塊A、B、C,...
摘要:概述本篇文章承接上文,記錄的是如何發(fā)布自己的模塊編寫(xiě)模塊新建項(xiàng)目并初始化編寫(xiě)模塊代碼發(fā)布模塊測(cè)試模塊命名空間每個(gè)人都可以發(fā)布自己的包,難免會(huì)有包名相同的情況,如果想要使 0x001 概述 本篇文章承接上文,記錄的是如何發(fā)布自己的Node.js模塊 0x002 編寫(xiě)模塊 新建項(xiàng)目并初始化 $ mkdir 0x005-publish-own-module $ cd 0x005-publis...
摘要:最近剛剛學(xué)習(xí)了一個(gè)的開(kāi)發(fā)框架,最重要的是可以用開(kāi)發(fā)傳送門(mén)以下是學(xué)習(xí)過(guò)程中的筆記上面時(shí)全局安裝完成后用檢查是否成功創(chuàng)建了一個(gè)名為的項(xiàng)目,然后進(jìn)入目錄,安裝依賴(lài),啟動(dòng)項(xiàng)目,瀏覽器打開(kāi)就可以看到頁(yè)面了。 最近剛剛學(xué)習(xí)了thinkjs--一個(gè)node的MVC開(kāi)發(fā)框架,最重要的是可以用es6/es7開(kāi)發(fā)【傳送門(mén)】 以下是學(xué)習(xí)過(guò)程中的筆記: npm install thinkjs@2 -g --v...
閱讀 1010·2023-04-26 02:16
閱讀 1277·2019-08-30 15:55
閱讀 2841·2019-08-30 15:53
閱讀 3442·2019-08-29 15:38
閱讀 2962·2019-08-29 13:42
閱讀 2040·2019-08-26 13:34
閱讀 1913·2019-08-26 10:10
閱讀 3130·2019-08-23 14:40