最近也遇到这种需求:目前 ora 最新版本是 6.3.0,该版本不再支持 CommonJS 形式导入,因此使用 const ora = require('ora') 将会报错:
const ora = require('ora')
^
Error [ERR_REQUIRE_ESM]: require() of ES Module /Users/frankie/Web/Temp/demo/node_modules/ora/index.js from /Users/frankie/Web/Temp/demo/src/index.js not supported.
npm 安装包的方式很多很多,本文就以下几种方式作简要介绍。
npm install \
它其实就是
npm install <name>@<tag>
简写形式。由于<tag>
默认为latest
(最新版本),因此在不作任何配置的情况下npm install <name>
会按照该包的最新版本。npm install \name>@\<tag
tag 是什么?
在软件开发的过程中,如有重大的版本变更,我们通常会给它打上一个「标签」,它只是一个更友好、易于理解的「别名」罢了。像平常使用 Git 做版本管理时,也会用
git tag
打标签。有哪些 tag?
默认情况下,
latest
标签用来标识某个包的最新版本。一个包如有多个开发流程可以自定义一些有意义的 tag,比如:
stable
、alpha
、beta
、dev
、canary
、next
。除了latest
之外的所有 tag,都需要在手动指定。如何查看 tag?
通过 npm-dist-tag 命令:
举个例子:
或在 npmjs.com 等平台查看:
如何添加/移除 tag?
在发包时通过
--tag
参数指定,若无指定,则默认为latest
。比如:对于已发布的版本,可以通过
npm dist-tag add
或npm dist-tag rm
来添加/移除 tag。比如:举个例子:
安装指定 tag
前面了解 tag 之后,安装就很容易理解了。
如有特殊需要,可通过
npm config set tag <tag>
去配置 tag(详见),后面npm install
不指定 tag 时,默认取该配置值。npm install \name>@\<version
安装时指定版本或指定版本范围:
安装确切版本
一是安装时指定确切版本,二是配置
save-exact
为true
(npm config set save-exact true
)。比如:那么安装就不会下载符合
^x.y.z
或~x.y.z
范围的版本了。安装 ^ 或 ~ 版本
使用
npm install <name>
安装包时,它会以^x.y.z
形式添加到package.json
里面。因为 npm 的save-prefix
默认配置就是^
,可通过npm config set save-prefix '~'
指定为~
。二者含义,大家都懂就不再展开赘述了。安装主要版本的最新版本
比如
npm install react@16
或npm install react@16.x
会安装 16.x 中最新的版本^16.14.0
。最近也遇到这种需求:目前 ora 最新版本是 6.3.0,该版本不再支持 CommonJS 形式导入,因此使用
const ora = require('ora')
将会报错:可安装 5.x 版本以支持 CommonJS(
npm install ora@5
)。npm install \@\
范围可通过使用
>
、<
、=
、-
等限定符组合。比如:References