标签 NPM 下的文章

网上也搜了一些解决方案,都是去修改文件的,但是对我来说并没有生效,所以再提供一个解决方案,希望能有帮助。

假如安装完NRM后,运行报错:ERR_REQUIRE_ESM

Error [ERR_REQUIRE_ESM]: require() of ES Module D:\Program Files\nvm\v16.19.1\node_modules\nrm\node_modules\open\index.js from D:\Program Files\nvm\v16.19.1\node_modules\nrm\cli.js not supported.
Instead change the require of index.js in D:\Program Files\nvm\v16.19.1\node_modules\nrm\cli.js to a dynamic import() which is available in all CommonJS modules.
    at Object.<anonymous> (D:\Program Files\nvm\v16.19.1\node_modules\nrm\cli.js:9:14) {
  code: 'ERR_REQUIRE_ESM'
}

2023-03-27T05:03:29.png

推测此问题应该是 nrm 的问题,在nrm/cli.js中使用了process.env.HOME这个环境变量导致。

如果有类似的错误,试试使用 github 方式安装:

npm install -g Pana/nrm

2023-03-27T05:05:00.png

之前写的农历面板组件虽然是一个比较小众的组件,但是也确实帮助了一些小伙伴。现在组件已经趋于稳定,所以为了让组件能够帮助更多的伙伴,于是就把组件提交到了awesome-vue库,没想到很快就通过了,已经合并到了日历组中。趁这功夫,又把封装的flv.js的组件也一并提交上去了,希望能够帮助更多的人,如果用的舒服,还请给一个星星鼓励。

- 阅读剩余部分 -

NPM 源的设置比较粗暴的方式是直接配置:

npm config set registry <registry url>

但这会影响所有包的安装,如果只是为了某些包需要从私有源安装,比如 @scopename 下的所有包,可以单独配置该 scope 走私有源,其他包走正常的源安装。

例如,我封装了一个私有组件@wangdaodao/demo,那项目重创建配置文件.npmrc

@wangdaodao:registry=<registry url>

源的配置通过配置文件来设置,跟随项目,将变更依赖收敛到了项目中,不依赖全局的配置,同时也不影响其他项目,甚至能为不同的 scope 指定不同的 registry,达到多个 registry 同时工作的目的。

另外,管理NPM源,推荐使用nrm:NPM registry manager,切换源是特别方便的。具体可以看使用Verdaccio搭建NPM私有仓库

第一步:安装Node

安装node:

wget https://nodejs.org/dist/v12.16.3/node-v12.16.3-linux-x64.tar.xz

解压文件重命名:

xz -d node-v12.16.3-linux-x64.tar.xz 
tar -xvf node-v12.16.3-linux-x64.tar
mv node-v12.16.3-linux-x64 nodejs

设置快捷方式:

ln -s /root/nodejs/bin/node /usr/local/bin/node 
ln -s /root/nodejs/bin/npm /usr/local/bin/npm 

测试:

node -v
npm -v

- 阅读剩余部分 -