如何使用龙8游戏

npm 管理 NodeJS 包,我将解释使用 npm,JavaScript的包管理工具,NPM是随同NodeJS一起安装的包管理工具

龙8游戏 1

龙8游戏 1

NPM是随同NodeJS一起安装的包管理工具,能够解决NodeJS代码部署上的很多问题。
package manager for
JavaScript:JavaScript的包管理工具。

前一段时间,我们发布了一个使用 pip 管理 Python
包的指南。今天,我们将讨论如何使用
npm 管理 NodeJS 包。npm 是最大的软件注册中心,包含 600,000
多个包。每天,世界各地的开发人员通过 npm
共享和下载软件包。在本指南中,我将解释使用 npm
基础知识,例如安装包(本地和全局)、安装特定版本的包、更新、删除和管理
NodeJS 包等等。

常见的使用场景有下面的几种:
1)允许用户从NPM服务器下载别人编写的第三方包到本地使用。
2)允许用户从NPM服务器下载并安装别人编写的命令行程序到本地使用。
3)允许用户将自己编写的包或命令行程序上传到NPM服务器供别人使用。

 

检查npm的版本

安装 npm

用于 npm 是用 NodeJS 编写的,我们需要安装 NodeJS 才能使用
npm。要在不同的 Linux 发行版上安装 NodeJS,请参考下面的链接。

  • 在 Linux 上安装 NodeJS 

如何使用龙8游戏。检查 node 安装的位置:

  1. $ which node
  2. /home/sk/.nvm/versions/node/v9.4.0/bin/node

检查它的版本:

  1. $ node -v
  2. v9.4.0

进入 Node 交互式解释器:

  1. $ node
  2. >.help
  3. .breakSometimes you get stuck,this gets you out
  4. .clearAliasfor.break
  5. .editor Enter editor mode
  6. .exitExit the repl
  7. .help Printthis help message
  8. .load Load JS from a file into the REPL session
  9. .save Save all evaluated commands inthis REPL session to a file
  10. >.exit

检查 npm 安装的位置:

  1. $ which npm
  2. /home/sk/.nvm/versions/node/v9.4.0/bin/npm

还有版本:

  1. $ npm -v
  2. 5.6.0

棒极了!Node 和 npm 已安装好!正如你可能已经注意到,我已经在我的 $HOME
目录中安装了 NodeJS 和 NPM,这样是为了避免在全局模块时出现权限问题。这是
NodeJS 团队推荐的方法。

那么,让我们继续看看如何使用 npm 管理 NodeJS 模块(或包)。

 

由于新版的nodejs已经集成了npm,所以之前npm也一并安装好了。同样可以通过输入
“npm -v” 来测试是否成功安装。

安装 NodeJS 模块

NodeJS
模块可以安装在本地或全局(系统范围)。现在我将演示如何在本地安装包(LCTT
译注:即将包安装到一个 NodeJS
项目当中,所以下面会先创建一个空项目做演示)。

 

$ npm -v
2.3.0

在本地安装包

如何使用龙8游戏。如何使用龙8游戏。为了在本地管理包,我们通常使用 package.json 文件来管理。

如何使用龙8游戏。首先,让我们创建我们的项目目录。

  1. $ mkdir demo
  2. $ cd demo

在项目目录中创建一个 package.json 文件。为此,运行:

  1. $ npm init

输入你的包的详细信息,例如名称、版本、作者、GitHub
页面等等,或者按下回车键接受默认值并键入 yes 确认。

  1. This utility will walk you through creating a package.json file.
  2. It only covers the most common items,and tries to guess sensible defaults.
  3. See`npm help json`for definitive documentation on these fields
  4. and exactly what they do.
  5. Use`npm install <pkg>` afterwards to install a packageand
  6. save it as a dependency in the package.json file.
  7. Press^C at any time to quit.
  8. package name:(demo)
  9. version:(1.0.0)
  10. description: demo nodejs app
  11. entry point:(index.js)
  12. test command:
  13. git repository:
  14. keywords:
  15. author:
  16. license:(ISC)
  17. About to write to /home/sk/demo/package.json:
  18. {
  19. "name":"demo",
  20. "version":"1.0.0",
  21. "description":"demo nodejs app",
  22. "main":"index.js",
  23. "scripts":{
  24. "test":"echo \"Error: no test specified\" && exit 1"
  25. },
  26. "author":"",
  27. "license":"ISC"
  28. }
  29. Isthis ok?(yes)yes

上面的命令初始化你的项目并创建了 package.json如何使用龙8游戏。 文件。

如何使用龙8游戏。你也可以使用命令以非交互式方式执行此操作:

  1. npm init--y

现在让我们安装名为 commander
的包。

  1. $ npm install commander

如何使用龙8游戏。示例输出:

  1. npm notice created a lockfile aspackage-lock.json.You should commit thisfile.
  2. npm WARN demo@1.0.0No repository field.
  3. + commander@2.13.0
  4. added 1packagein2.519s

这将在项目的根目录中创建一个名为 node_modules
的目录(如果它不存在的话),并在其中下载包。

让我们检查 pachage.json 文件。

  1. $ catpackage.json
  2. {
  3. "name":"demo",
  4. "version":"1.0.0",
  5. "description":"demo nodejs app",
  6. "main":"index.js",
  7. "scripts":{
  8. "test":"echo \"Error: no test specified\" && exit 1"
  9. },
  10. "author":"",
  11. "license":"ISC",
  12. "dependencies":{
  13. "commander":"^2.13.0"
  14. }
  15. }

你会看到添加了依赖文件,版本号前面的插入符号 ( ^ ) 表示在安装时,npm
将取出它可以找到的最高版本的包。

  1. $ ls node_modules/
  2. commander

package.json 文件的优点是,如果你的项目目录中有 package.json
文件,只需键入 npm install,那么 npm
将查看文件中列出的依赖关系并下载它们。你甚至可以与其他开发人员共享它或将其推送到你的
GitHub 仓库。因此,当他们键入 npm install
时,他们将获得你拥有的所有相同的包。

你也可能会注意到另一个名为 package-lock.json
的文件,该文件确保在项目安装的所有系统上都保持相同的依赖关系。

要在你的程序中使用已安装的包,使用实际代码在项目目录中创建一个
index.js(或者其他任何名称)文件,然后使用以下命令运行它:

  1. $ node index.js

 

npm 命令升级

在全局安装包

如果你想使用一个包作为命令行工具,那么最好在全局安装它。这样,无论你的当前目录是哪个目录,它都能正常工作。

  1. $ npm install async -g
  2. + async@2.6.0
  3. added 2 packages in4.695s

或者

  1. $ npm install async --global

要安装特定版本的包,我们可以:

  1. $ npm install async@2.6.0--global

 

$ sudo npm install npm -g
/usr/local/bin/npm -> /usr/local/lib/node_modules/npm/bin/npm-cli.js
npm@2.14.2 /usr/local/lib/node_modules/npm

更新 NodeJS 模块

要更新本地包,转到 package.json 所在的项目目录并运行:

  1. $ npm update

然后,运行以下命令确保所有包都更新了。

  1. $ npm outdated

如果没有需要更新的,那么它返回空。

要找出哪一个全局包需要更新,运行:

  1. $ npm outdated -g --depth=0

如果没有输出,意味着所有包都已更新。

更新单个全局包,运行:

  1. $ npm update -g <package-name>

更新所有的全局包,运行:

  1. $ npm update -g

 

使用 npm 命令安装模块

列出 NodeJS 模块

列出本地包,转到项目目录并运行:

  1. $ npm list
  2. demo@1.0.0/home/sk/demo
  3. └── commander@2.13.0

如你所见,我在本地安装了 commander 这个包。

要列出全局包,从任何位置都可以运行以下命令:

  1. $ npm list-g

示例输出:

  1. /home/sk/.nvm/versions/node/v9.4.0/lib
  2. ├─┬ async@2.6.0
  3. │└── lodash@4.17.4
  4. └─┬ npm@5.6.0
  5. ├── abbrev@1.1.1
  6. ├── ansi-regex@3.0.0
  7. ├── ansicolors@0.3.2
  8. ├── ansistyles@0.1.3
  9. ├── aproba@1.2.0
  10. ├── archy@1.0.0
  11. [...]

该命令将列出所有模块及其依赖关系。

要仅仅列出顶级模块,使用 -depth=0 选项:

  1. $ npm list-g --depth=0
  2. /home/sk/.nvm/versions/node/v9.4.0/lib
  3. ├── async@2.6.0
  4. └── npm@5.6.0

 

npm 安装 Node.js 模块语法格式如下:

寻找 NodeJS 模块

要搜索一个模块,使用 npm search 命令:

  1. npm search <search-string>

例如:

  1. $ npm search request

该命令将显示包含搜索字符串 request 的所有模块。

 

$ npm install <Module Name>
移除 NodeJS 模块

要删除本地包,转到项目目录并运行以下命令,这会从 node_modules
目录中删除包:

  1. $ npm uninstall <package-name>

要从 package.json 文件中的依赖关系中删除它,使用如下所示的 save
选项:

  1. $ npm uninstall --save <package-name>

要删除已安装的全局包,运行:

  1. $ npm uninstall -g <package>

 

eg:
我们使用 npm 命令安装常用的 Node.js web框架模块 express:

清除 npm 缓存

默认情况下,npm 在安装包时,会将其副本保存在 $HOME 目录中名为 .npm
的缓存文件夹中。所以,你可以在下次安装时不必再次下载。

查看缓存模块:

  1. $ ls~/.npm

随着时间的推移,缓存文件夹会充斥着大量旧的包。所以不时清理缓存会好一些。

从 npm@5 开始,npm 缓存可以从 corruption
问题中自行修复,并且保证从缓存中提取的数据有效。如果你想确保一切都一致,运行:

  1. $ npm cache verify

清除整个缓存,运行:

  1. $ npm cache clean --force

 

$ npm install express

查看 npm 配置

要查看 npm 配置,键入:

  1. $ npm config list

或者:

  1. $ npm config ls

示例输出:

  1. ; cli configs
  2. metrics-registry ="https://registry.npmjs.org/"
  3. scope =""
  4. user-agent ="npm/5.6.0 node/v9.4.0 linux x64"
  5. ; node bin location =/home/sk/.nvm/versions/node/v9.4.0/bin/node
  6. ; cwd =/home/sk
  7. ; HOME =/home/sk
  8. ;"npm config ls -l" to show all defaults.

要显示当前的全局位置:

  1. $ npm config get prefix
  2. /home/sk/.nvm/versions/node/v9.4.0

好吧,这就是全部了。我们刚才介绍的只是基础知识,npm
是一个广泛话题。有关更多详细信息,参阅 NPM Getting
Started
指南。

希望这对你有帮助。更多好东西即将来临,敬请关注!

干杯!

via: ostechnix

本文永久更新链接地址

龙8游戏 2

安装好之后,express 包就放在了工程目录下的 node_modules
目录中,因此在代码中只需要通过 require(‘express’)
的方式就好,无需指定第三方包路径。

var express = require('express');

NPM 的全局安装与本地安装

npm
的包安装分为本地安装(local)、全局安装(global)两种,从敲的命令行来看,差别只是有没有-g而已,比如:

npm install express        # 本地安装
npm install express -g   # 全局安装

1.本地安装
a. 将安装包放在 ./node_modules 下(运行 npm
命令时所在的目录),如果没有 node_modules 目录,会在当前执行 npm
命令的目录下生成 node_modules 目录。

b. 可以通过 require() 来引入本地安装的包。

2.全局安装
a.将安装包放在 /usr/local 下或者你 node 的安装目录。
b.可以直接在命令行里使用。

查看NPM安装列表信息

你可以使用以下命令来查看所有全局安装的模块:

$ npm list -g

如果要查看某个模块的版本号,可以使用命令如下:

$ npm list grunt

使用 package.json

package.json 位于模块的目录下,用于定义包的属性。接下来让我们来看下
express 包的 package.json 文件,位于
node_modules/express/package.json 内容:

{
  "name": "express",
  "description": "Fast, unopinionated, minimalist web framework",
  "version": "4.13.3",
  "author": {
    "name": "TJ Holowaychuk",
    "email": "tj@vision-media.ca"
  },
  "contributors": [
    {
      "name": "Aaron Heckmann",
      "email": "aaron.heckmann+github@gmail.com"
    },
    {
      "name": "Ciaran Jessup",
      "email": "ciaranj@gmail.com"
    },
    {
      "name": "Douglas Christopher Wilson",
      "email": "doug@somethingdoug.com"
    },
    {
      "name": "Guillermo Rauch",
      "email": "rauchg@gmail.com"
    },
    {
      "name": "Jonathan Ong",
      "email": "me@jongleberry.com"
    },
    {
      "name": "Roman Shtylman",
      "email": "shtylman+expressjs@gmail.com"
    },
    {
      "name": "Young Jae Sim",
      "email": "hanul@hanul.me"
    }
  ],
  "license": "MIT",
  "repository": {
    "type": "git",
    "url": "git+https://github.com/strongloop/express.git"
  },
  "homepage": "http://expressjs.com/",
  "keywords": [
    "express",
    "framework",
    "sinatra",
    "web",
    "rest",
    "restful",
    "router",
    "app",
    "api"
  ],
  "dependencies": {
    "accepts": "~1.2.12",
    "array-flatten": "1.1.1",
    "content-disposition": "0.5.0",
    "content-type": "~1.0.1",
    "cookie": "0.1.3",
    "cookie-signature": "1.0.6",
    "debug": "~2.2.0",
    "depd": "~1.0.1",
    "escape-html": "1.0.2",
    "etag": "~1.7.0",
    "finalhandler": "0.4.0",
    "fresh": "0.3.0",
    "merge-descriptors": "1.0.0",
    "methods": "~1.1.1",
    "on-finished": "~2.3.0",
    "parseurl": "~1.3.0",
    "path-to-regexp": "0.1.7",
    "proxy-addr": "~1.0.8",
    "qs": "4.0.0",
    "range-parser": "~1.0.2",
    "send": "0.13.0",
    "serve-static": "~1.10.0",
    "type-is": "~1.6.6",
    "utils-merge": "1.0.0",
    "vary": "~1.0.1"
  },
  "devDependencies": {
    "after": "0.8.1",
    "ejs": "2.3.3",
    "istanbul": "0.3.17",
    "marked": "0.3.5",
    "mocha": "2.2.5",
    "should": "7.0.2",
    "supertest": "1.0.1",
    "body-parser": "~1.13.3",
    "connect-redis": "~2.4.1",
    "cookie-parser": "~1.3.5",
    "cookie-session": "~1.2.0",
    "express-session": "~1.11.3",
    "jade": "~1.11.0",
    "method-override": "~2.3.5",
    "morgan": "~1.6.1",
    "multiparty": "~4.1.2",
    "vhost": "~3.0.1"
  },
  "engines": {
    "node": ">= 0.10.0"
  },
  "files": [
    "LICENSE",
    "History.md",
    "Readme.md",
    "index.js",
    "lib/"
  ],
  "scripts": {
    "test": "mocha --require test/support/env --reporter spec --bail --check-leaks test/ test/acceptance/",
    "test-ci": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --require test/support/env --reporter spec --check-leaks test/ test/acceptance/",
    "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --require test/support/env --reporter dot --check-leaks test/ test/acceptance/",
    "test-tap": "mocha --require test/support/env --reporter tap --check-leaks test/ test/acceptance/"
  },
  "gitHead": "ef7ad681b245fba023843ce94f6bcb8e275bbb8e",
  "bugs": {
    "url": "https://github.com/strongloop/express/issues"
  },
  "_id": "express@4.13.3",
  "_shasum": "ddb2f1fb4502bf33598d2b032b037960ca6c80a3",
  "_from": "express@*",
  "_npmVersion": "1.4.28",
  "_npmUser": {
    "name": "dougwilson",
    "email": "doug@somethingdoug.com"
  },
  "maintainers": [
    {
      "name": "tjholowaychuk",
      "email": "tj@vision-media.ca"
    },
    {
      "name": "jongleberry",
      "email": "jonathanrichardong@gmail.com"
    },
    {
      "name": "dougwilson",
      "email": "doug@somethingdoug.com"
    },
    {
      "name": "rfeng",
      "email": "enjoyjava@gmail.com"
    },
    {
      "name": "aredridel",
      "email": "aredridel@dinhe.net"
    },
    {
      "name": "strongloop",
      "email": "callback@strongloop.com"
    },
    {
      "name": "defunctzombie",
      "email": "shtylman@gmail.com"
    }
  ],
  "dist": {
    "shasum": "ddb2f1fb4502bf33598d2b032b037960ca6c80a3",
    "tarball": "http://registry.npmjs.org/express/-/express-4.13.3.tgz"
  },
  "directories": {},
  "_resolved": "https://registry.npmjs.org/express/-/express-4.13.3.tgz",
  "readme": "ERROR: No README data found!"
}

Package.json 属性说明:

name - 包名。
version - 包的版本号。
description - 包的描述。
homepage - 包的官网 url 。
author - 包的作者姓名。
contributors - 包的其他贡献者姓名。
dependencies - 依赖包列表。如果依赖包没有安装,npm 会自动将依赖包安装在 node_module 目录下。
repository - 包代码存放的地方的类型,可以是 git 或 svn,git 可在 Github 上。
main - main 字段指定了程序的主入口文件,require('moduleName') 就会加载这个文件。这个字段的默认值是模块根目录下面的 index.js。
keywords - 关键字。

通过package.json进行npm安装

如果我们的项目依赖了很多package,一个一个地安装那将是个体力活。我们可以将项目依赖的包都在package.json这个文件里声明,然后一行命令搞定:

npm install

此命令应该在package.json的同级。

卸载模块

我们可以使用 npm uninstall 命令来卸载 Node.js 模块。

$ npm uninstall express

到 /node_modules/ 目录下查看包是否还存在,或者使用以下命令查看:

$ npm ls

更新模块

$ npm update express

搜索模块

$ npm search express

创建模块

创建模块,package.json 文件是必不可少的。我们可以使用 NPM 生成
package.json 文件,生成的文件包含了基本的结果。

$ npm init

以上的信息,你需要根据你自己的情况输入。在最后输入 “yes” 后会生成
package.json 文件。
接下来我们可以使用以下命令在 npm 资源库中注册用户(使用邮箱注册):

$ npm adduser
Username: mcmohd
Password:
Email: (this IS public) mcmohd@gmail.com

接下来我们就用以下命令来发布模块:

$ npm publish

如果你以上的步骤都操作正确,你就可以跟其他模块一样使用 npm 来安装。

NPM 常用命令

NPM提供了很多命令,例如install和publish,使用npm help可查看所有命令。
使用npm help <command>可查看某条命令的详细帮助,例如npm help install。
在package.json所在目录下使用npm install . -g可先在本地安装当前命令行程序,可用于发布前的本地测试。
使用npm update <package>可以把当前目录下node_modules子目录里边的对应模块更新至最新版本。
使用npm update <package> -g可以把全局安装的对应命令行程序更新至最新版。
使用npm cache clear可以清空NPM本地缓存,用于对付使用相同版本号发布新版本代码的人。
使用npm unpublish <package>@<version>可以撤销发布自己发布过的某个版本代码。

使用淘宝 NPM 镜像
大家都知道国内直接使用 npm 的官方镜像是非常慢的,这里推荐使用淘宝 NPM
镜像。
淘宝 NPM 镜像是一个完整 npmjs.org
镜像,你可以用此代替官方版本(只读),同步频率目前为 10分钟
一次以保证尽量与官方服务同步。
你可以使用淘宝定制的 cnpm (gzip 压缩支持) 命令行工具代替默认的 npm:

$ npm install -g cnpm --registry=https://registry.npm.taobao.org

这样就可以使用 cnpm 命令来安装模块了:

$ cnpm install [name]