2019-08-01

个人对npm的学习

1:快速介绍

npm全称是 Node Package Manager 包管理工具。

NPM 的实现思路:

1、有一个远程代码仓库(registry),在里面存放所有需要被共享的js代码,每个js文件都有自己唯一标识。

2、用户想使用某个js的时候,只需引用对应的标识,js文件会自动下载下来。

npm 由三个独立的部分组成:

1:网站

2:注册表(registry)

3:命令行工具 (CLI)

2:对npm的安装以及部分操作

管理npm中的本地安装的包的最好的方法是创建一个package.json文件

注:package。json文件一定要有

"name":    全为小写字母 , 一个单词,没有空格(可包含允许的标记与添加)

"version":在x.x.x的形式下去写

例子:

{ "name": "my-awesome-package",

"version": "1.0.0"}

(2):建立package.json文件的方法

(1):运行一个CLI questionnaire

像这样:

> npm init

(2)弄个预设的package. json文件

为了去弄个预设的package.json,需加上-yes或-y的标志来运行npm

像这样:> npm init --yes

> npm init --yes

例:

Wrote to /home/ag_dubs/my_package/package.json:

{

  "name": "my_package",

  "description": "",

  "version": "1.0.0",

  "main": "index.js",

  "scripts": {

    "test": "echo \"Error: no test specified\" && exit 1"

  },

  "repository": {

    "type": "git",

    "url": "https://github.com/ashleygwilliams/my_package.git"

  },

  "keywords": [],

  "author": "",

  "license": "ISC",

  "bugs": {

    "url": "https://github.com/ashleygwilliams/my_package/issues"

  },

  "homepage": "https://github.com/ashleygwilliams/my_package"

}

3:部分命令行介绍

1:access

1:简述:

access命令行用于在个人的安装包中设置一个access控制。

2:下列指令是access的用法及作用

(1)public/restricted:设置一个可公共访问(public)或是有访问限制(restricted)的包

npm access public [<package>]

npm access restricted [<package>]

(2):grant/revoke:增加(grant)或除去(revoke)使用者和团队读写或者只读途径的功能

npm access grant <read-only|read-write> <scope:team> [<package>]

npm access revoke <scope:team> [<package>]

(3):2fa-required / 2fa-not-required:为发布这个包的使用者配置双因素认证(2fa-required)/否(2fa-not-required)

npm access 2fa-required [<package>]

npm access 2fa-not-required [<package>]

ls-packages:展示所有使用者或团队能使用的包,除了只读的公共包。

npm access ls-packages [<user>|<scope>|<scope:team>]

ls-collaborators: 为一个包展示所有的访问权限,只会向你展示你所拥有的包的访问允许。

npm access ls-collaborators [<package> [<user>]]

edit:为一个包设置一次访问权利

npm access edit [<package>]

2:npm-adduser

用处:添加注册表用户帐户

配置

registry:

默认值:https://registry.npmjs.org/

npm包注册表的基URL。如果还指定了作用域,则此注册表将仅用于具有该作用域的包。作用域默认为当前所在项目目录的作用域(如果有)

scope:

默认值: none

如果指定,则给定的用户和登录凭据将与指定的作用域关联。参见NPM-范围。您可以同时使用这两种方法,例如

npm adduser --registry=http://myregistry.example.com --scope=@myco

这将为给定的作用域和登录设置一个注册表,或者同时为该注册表创建一个用户。

always-auth:

默认值:false

如果指定,则保存配置,指示对给定注册表的所有请求都应包含授权信息。对专用寄存器有用。可以与--registry和/或--scope一起使用,例如

npm adduser --registry=http://private-registry.example.com --always-auth

auth-type:

默认值:    'legacy'

种类:        'legacy', 'sso', 'saml', 'oauth'

与adduser/login一起使用的身份验证策略。除了传统的NPM中的经典用户名/密码输入之外,一些NPM注册中心(例如,NPME)可能还支持其他认证策略。

3:npm-audit

简介:运行安全审核

(1)扫描您的项目是否存在漏洞,并自动为易受攻击的依赖项安装任何兼容的更新:

$ npm audit fix

(2)运行audit fix而不修改node_模块,但仍更新pkglock:

$ npm audit fix --package-lock-only

(3)跳过更新devdependencies:

$ npm audit fix --only=prod

(4)让audit fix将semver主要更新安装到顶层依赖项,而不仅仅是semver兼容的依赖项:

$ npm audit fix --force

(5)进行一次试运行,了解审计修复将要做什么,并以JSON格式输出安装信息:

$ npm audit fix --dry-run --json

(6)扫描您的项目是否存在漏洞,只显示详细信息,而不修复任何问题:

$ npm audit

(7)获取json格式的详细审计报告:

$ npm audit --json

(8)以纯文本结果获取详细的审计报告,用制表符分隔,以便将来在脚本或命令行后处理中重用,例如,选择一些打印的列:

$ npm audit --parseable

要解析列,您可以使用awk,并只打印其中的一些列:

$ npm audit --parseable | awk -F $'\t' '{print $1,$4}'

4:npm-bin

简述:显示 npm 的 bin 文件夹的路径

npm bin [-g|--global]

描述:列出 npm 安装可执行文件的文件夹。

5:npm-bugs

简述:Web浏览器中的程序包错误

这个命令尝试猜测包的bug跟踪器URL的可能位置,然后尝试使用--browser-config参数打开它。如果没有提供包名称,它将在当前文件夹中搜索package.json并使用name属性。

npm bugs [<pkgname>]

aliases: issues

6:npm-build

简述:构建一个包

用法:

npm build [<package-folder>]

(<package-folder>: 在其根目录中包含一个 package.json 文件的文件夹。)

注:它通常在安装过程中被调用,但是如果你需要直接运行它,请运行:

npm run-script build:

7:npm-bundle

意思:删除

注:现在直接用 npm install 命令替代 npm bundle 命令。

8:npm-cache

简述:操作程序包缓存

用法:

npm cache add <tarball file>

npm cache add <folder>

npm cache add <tarball url>

npm cache add <name>@<version>

npm cache clean [<path>]

aliases: npm cache clear, npm cache rm

npm cache verify

作用

1:npm cache add

添加:将指定的包添加到本地缓存。此命令主要用于NPM内部,但它可以提供一种将数据显式添加到本地安装缓存的方法。

2:npm cache clean 

清除:从缓存文件夹中删除所有数据。

3:npm cache verify

验证:验证缓存文件夹的内容,垃圾收集任何不需要的数据,并验证缓存索引和所有缓存数据的完整性。

9:npm-ci

简述:在一个空白记录中安装一个项目。

例子如下:

1:确保您有软件包锁和最新安装:

$ cd ./my/npm/project

$ npm install

added 154 packages in 10s

$ ls | grep package-lock

2:在这个项目中运行ci

$ npm ci

added 154 packages in 5s

3:配置Travis去建立ci去代替stall

# .travis.yml

install:

- npm ci

# keep the npm cache around to speed up installs

cache:

  directories:

  - "$HOME/.npm":

10:npm-completion

简述:新产品管理表完成

概要

source <(npm completion)

在所有NPM命令中启用制表符完成;将其添加到您的~/.bashrc或~/.zshrc将使完成操作在任何地方都可用。

npm completion >> ~/.bashrc

npm completion >> ~/.zshrc

11:npm-config

简述:管理NPM配置文件

在此,还有很多的命令行就不一一列举了。

4:部分注意事项

(1):正确的代码形式

错的:

function ()

{

对的:

function () {

如果块需要换行到下一行,请使用大括号。如果没有,不要使用它。

错的:

if (foo) { bar() }

while (foo)

  bar()

对的:

if (foo) bar()

while (foo) {

  bar()

}

注:分号只在四种情况下使用:

1:for(;;)循环。它们实际上是必需的。

2:空循环如:while(something);(但最好有一个很好的理由这样做。)

3:case 'foo': doSomething(); break

4:在前导的前面(或在行首)。这将分别防止将表达式解释为函数调用或属性访问。

3:如果有一个用逗号分隔的事物列表,并且它跨多行包装,则将逗号放在下一行的开头,直接放在列表开头的标记下面。将列表中的最后一个标记单独放在一行上。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容