NPM 技巧

NPM,Node Package Manager,是 JavaScript 编程语言的软件包管理器。 任何使用 Javascript 的开发人员都使用过这个出色的 CLI 工具来为他们的项目安装依赖项。

初始化

可以运行 npm init命令来初始化包,但是它会询问关于包、作者等信息。

另一种方法可以使用 npm init -y 命令自动生成我们的 package.json ,并使用 npm config 命令设置一些默认的初始化配置。

npm config set init-author-name "名字"
npm config set init-author-email "邮箱"

npm init -y

 安装包(不同源)

NPM CLI 还允许从其他来源(例如 Bittarball 文件,GitHubBitbucketgist )安装 javascript 包。

# Install a component from Bit (set Bit as a scoped registry)
npm config set @bit:registry https://node.bit.dev
npm i @bit/username.collection.component
# Install from tarball stored locally
npm i ./local-tarball-package.tgz
# Install tarball package from internet
npm i https://abc/xyz/package.tar.gz
# Install from github repo
npm i githubuser/reponame
# Install from bitbucket repo
npm i bitbucket:bitbucketuser/reponame
# Install from gist
npm i gist:gistID

例如:

从Bit安装按钮组件

首先,将 Bit 配置为scope (范围包)

npm config set @bit:registry https://node.bit.dev

 然后找到 button 组件,复制安装命令,使用NPM进行安装

npm i @bit/团队名.组件集名.组件名

从npm企业私库安装 Icon 组件 

 使用 scope 和企业私库关联起来。这样你就可以同时使用 npm 公共仓库和一些其他的私有仓库中的模块:

npm config set @xscope:registry https://xxx.com/npm/

多源安装:用户无感知

每次用户使用私有库的时候都需要切换 npm 镜像路径,利用 npm preinstall 的钩子,项目的 package.json 里增加 preinstall 要执行的脚本,这样合作方可以无感知的安装:

// 在执行 npm install 命令前,npm 会自动执行 npm preinstall 钩子
"scripts": {
    "preinstall": "node ./bin/preinstall.js"
}

配置 ./bin/preinstall.js:

const { exec } = require('child_process');

exec('npm config get registry', function(error, stdout, stderr) {
  if (!stdout.toString().match(/registry\.x\.com/)) {
    exec('  npm config set @xscope:registry https://xxx.com/npm/');
  }
});

删除重复的包

我们可以通过运行 npm dedupe 命令删除重复的依赖项。 它通过删除重复的程序包并在多个从属程序包之间有效地共享公共依赖项,简化了总体结构。 这样就形成了一个平面且具有重复数据删除功能的树。

npm dedupe or npm ddp

扫描应用程序中的漏洞

我们可以运行 npm audit 命令来扫描我们的项目中任何依赖项中的任何漏洞。 它会以表格格式生成漂亮的输出并显示(我们也可以用JSON获取输出),如果其它包是多级/多依赖项,则其它包都依赖于此包。

npm audit fix 会自动安装所有漏洞包的补丁版本(如果可用)

npm audit fix

检查环境

我们可以使用 npm doctor 命令在我们的环境中运行多个检查,比如,我们的npm CLI是否有足够的权限来安装javascript包,它是否能够连接到npm注册表。它还检查node和npm版本,验证缓存是否有损坏的软件包。

npm doctor

检查包是否过时

我们可以使用 npm outdated 命令来检查所有过时的npm软件包。 它还显示了应为过时的软件包安装的最新版本。

npm outdated --long or npm outdated -l

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值