npm

>太棒了 npm 资源和提示

你可能还喜欢 awesome-nodejs.

请阅读 contribution guidelines 在捐款之前.

Articles

Tools

Web

Browser extensions

  • Octo-Linker -Chrome扩展程序可轻松浏览GitHub上的npm软件包.
  • npm-hub -Chrome扩展程序,用于探索GitHub存储库上的npm依赖性.
  • github-npm-stats -在GitHub上查看npm下载统计信息.

CLI

Packages

Publishing

  • np -更好的“ npm发布”.
  • publish-please -安全,优雅地发布软件包.
  • npm-release -使释放到npm变得容易,小猫可以做到这一点™.
  • pkgfiles -列出将在程序包中发布的所有文件.
  • release-it -自动发布Git存储库和/或npm软件包. 更改日志生成,GitHub / GitLab版本等.
  • semantic-release -全自动软件包发布.

Registry

  • npm-name -检查软件包名称在npm上是否可用.
  • package-json -从npm注册表中获取软件包的package.json.
  • latest-version -获取npm软件包的最新版本.
  • npm-keyword -获取带有特定关键字的npm软件包列表.
  • npm-user -获取npm用户的用户信息.
  • npm-email -获取npm用户的电子邮件.
  • npm-user-packages -由npm用户获取软件包.
  • dpn -获取用户npm软件包的依赖项.
  • npm-stats -从npm注册表获取数据.
  • npm-cli-login -登录到npm.
  • nrm -注册表管理员.
  • npm-register -易于设置和维护npm注册表和代理.
  • verdaccio -轻量级私人npm代理注册表.
  • cloudsmith -全面管理的软件包管理SaaS,并支持公共和私有npm注册表(以及许多其他注册表).

Other

  • npm-home -打开软件包的npm页面.
  • gh-home -打开软件包的GitHub页面.
  • david -检查您的软件包依赖项是否过时.
  • npm-check -检查过时,不正确和未使用的依存关系,以及交互式更新.
  • npm-upgrade -以交互方式更新过时的npm依赖项.
  • npm-shrinkwrap -一致的拆封工具.
  • npm-windows-upgrade -在Windows上升级npm.
  • generator-nm -脚手架出一个npm包.
  • pkg-up -找到最近的package.json文件.
  • read-pkg-up -阅读最近的package.json文件.
  • normalize-package-data -规范包元数据.
  • pkg-conf -从最近的package.json获取命名空间的配置.
  • npm-run-path -在终端中按本地名称运行全局安装的二进制文件.
  • local-npm -在海平面以上使用 offline.
  • npe -CLI,用于检查和编辑package.json中的属性.
  • engine-deps -轻松管理特定于Node.js版本的依赖项.
  • enpeem-search -通过抓取npm网络搜索来搜索软件包.
  • npm-issues -一次搜索所有软件包的已知问题.
  • john -使npm3的平面依赖项更易于查找和排序.
  • ntl -交互式CLI菜单,列出并运行npm任务.
  • decheck -在命令行中探索npm软件包的依赖性.
  • shrinkpack -锁定依赖项并脱机安装.
  • redrun -从package.json扩展脚本以提高执行速度.
  • package-size -获取npm软件包的捆绑包大小.
  • synp -将yarn.lock转换为package-lock.json,反之亦然.
  • npm-run-all -CLI工具可并行或串行运行多个npm脚本.
  • onchange -监视文件和文件夹,并在发生更改时运行命令.
  • cli-error-notifier -当npm脚本失败时发送本机桌面通知.
  • luna -用于管理npm依赖关系的应用程序.
  • emma-cli -交互式CLI软件包搜索实用程序.
  • lockfile-lint -整理锁文件以提高安全性和信任策略,以减轻恶意程序包注入和不安全的锁文件资源.

Clients

  • yarn -快速,可靠和安全的依赖性管理.
  • npm -官方客户.
  • pnpm -快速,节省磁盘空间的软件包管理器.

Tips

Update to the latest npm version

$ npm install-全局npm

Windows users, read more.

Command aliases

-npm andnpm install -npm i -Dnpm install --save-dev -npm tnpm test -npm itnpm install && npm测试 -npm rnpm卸载

Shell aliases

加快常见的npm任务.

在您的.zshrc /.bashrc中:

别名ni ='npm install'
别名nid ='npm install --save-dev'
别名nig ='npm install --global'
别名nt ='npm测试'
别名nit ='npm install && npm测试'
别名nk ='npm链接'
别名nr ='npm run'
别名ns ='npm start'
别名nf ='npm缓存清理&& rm -rf node_modules && npm安装'
别名nlg ='npm list --global --depth = 0'

Don't add to package.json when installing

默认情况下,npm将您安装的软件包添加到package.json中的“ dependencies”字段(自v5起). 您可以通过指定--no-save标志来防止这种情况. 您可以使用--save-dev /-D将软件包添加到devDependencies中:

$ npm install --save-dev ava

Run scripts

您可以轻松地 run scripts 通过将npm添加到package.json的“ scripts”字段中来使用npm并使用npm run运行它们 . 运行npm run`来查看可用的脚本. 本地安装软件包的二进制文件位于 [PATH](https://en.wikipedia.org/wiki/PATH_(variable)),因此您可以按名称运行它们.

{
     name”:“超棒包装”,
    “脚本”:{
         cat”:“猫名”
    },
    “依赖关系”:{
        “猫名”:“ ^ 1.0.0”
    }
}
$ npm跑猫
Max

所有package.json属性都是 exposed 作为环境变量:

{
     name”:“超棒包装”,
    “脚本”:{
         name”:“ echo $ npm_package_name”
    }
}
$ npm运行名称
awesome-package

Passing options to commands

您可以通过添加---flag来将选项传递给您在npm脚本中使用的命令,如以下示例所示. - [marks the end of options parsing](https://unix.stackexchange.com/questions/11376/what-does-double-dash-mean-also-known-as-bare-double-dash),因此npm run`只会忽略它并将其传递给命令.

{
     name”:“超棒包装”,
    “脚本”:{
         xo”:“ xo”,
         xo:fix”:“ npm run xo---fix”,
    }
}

添加---fix选项就像执行xo --fix .

Silent option

npm run有一个--silent选项,在组合npm脚本时特别有用.

假设您有一个用于整理JavaScript文件的设置,如下所示:

{
     name”:“超棒包装”,
    “脚本”:{
         xo”:“ xo”,
         xo:fix”:“ npm run xo --silent---fix”,
    }
}

使用--silent选项会减少终端的输出. 看到 this comparison.

Lifecycle scripts

npm带有预定义 lifecyle scripts 如果在package.json中定义它们,则它们将在特定条件下被执行.

{
     name”:“超棒包装”,
    “脚本”:{
         prepublishOnly”:“ nsp检查”
    },
     devDependencies”:{
         nsp”:“ ^ 3.0.0”
    }
}

这将在您的npm软件包通过“ npm publish”发布到注册表之前自动执行,以检查依赖项中的已知漏洞.

注意: prepublishOnly 自npm v4.0.0起可用. 看到 npm docs.

npm start and npm test

“ npm start”和“ npm test”也是生命周期脚本,但不会自动执行.

{
     name”:“超棒包装”,
    “脚本”:{
         start”:“节点server.js”,
         test”:“ ava”
    },
     devDependencies”:{
        “水”:“ ^ 1.0.0”
    }
}

因此,可以使用以下命令简单地执行它们:

$ npm测试
$ npm开始

pre and post scripts

这些是特殊的生命周期脚本,可用于按顺序自动运行脚本.

{
     name”:“超棒包装”,
    “脚本”:{
         pretest”:“大便.”,
         test”:“ ava”
    },
     devDependencies”:{
         eslint”:“ ^ 4.19.0”,
        “水”:“ ^ 1.0.0”
    }
}
$ npm测试

This will lint your files before running your tests. The tests will not run if linting fails. Or more generally spoken: the following script won’t be executed if one of the scripts running in sequence exits with an exit code other than 0.

*注意:prepost脚本也可以用于您的自定义npm脚本. 所以npm run foo也将运行prefoopostfoo.

Run script with npx

npm comes bundlednpx(自v5.2.0起)—一种执行软件包二进制文件的工具. 每个命令都可以从本地node_modules / .bin目录执行,也可以从中央高速缓存执行,安装<command>运行.

{
     name”:“超棒包装”,
    “依赖关系”:{
        “猫名”:“ ^ 1.0.0”
    }
}

如果已经安装了二进制文件,它将在node_modules / .bin中执行.

$ npx猫名
Max

但是,如果缺少二进制文件,将首先安装它.

$ npx狗名
npx:在3.136s中安装了46
Bentley

Run commands with different Node.js versions

带有“ npx”(与npm v5.2.0或更高版本捆绑在一起)和 node-bin 软件包,您可以轻松试用不同Node.js版本中的代码,而不必使用版本管理器,例如 nvm, nave, 要么 n.

$ npx --package=node-bin@6.11.0-节点--version
v6.11.0

有时,将软件包的本地版本作为依赖项可能很有用. 您可以使用“ npm link”将一个本地软件包链接到另一个本地软件包. 在您要使用的软件包中运行npm link. 这将创建一个全局参考. 然后进入原始包并运行`npm link 链接到另一个包.

$ cd彩虹
$ npm链接
$ cd ../unicorn
$ npm链接彩虹

现在,您可以在unicorn软件包中将rainbow用作依赖项.

Install a package from GitHub

npm支持使用简写直接从GitHub存储库安装软件包:

$ npm安装sindresorhus /粉笔

我们以一个特定的提交作为目标,因为master是一个移动的目标:

$ npm install 'sindresorhus/chalk#51b8f32'

指定提交SHA,分支,​​标记或不指定任何内容.

您还可以使用semver安装Git依赖项:(需要npm v5或更高版本)

$ npm install 'sindresorhus/chalk#semver:^2.0.0'

Install a specific version of a package

$ npm安装粉笔@ 1.0.0

List top-level installed packages and their version

$ npm ls --depth = 0

Command help

获取命令的帮助文档:

$ npm帮助<command>

Example:

$ npm帮助安装

Standalone version of a package

快速获得可浏览器化并在浏览器中可用的软件包的独立版本.

https://wzrd.in/standalone/<package-name>[@<version>]

Examples:

非常适合制作原型,但可以下载文件或使用Browserify进行生产.

FAQ

Community

Documentation

Support

License

CC0

在法律允许的范围内, Sindre Sorhus 放弃了此作品的所有版权以及相关或邻近的权利.