关于包名-怎么包名还长得不一样呢

包名怎么还不一样?

今天看了一下node_modules下面的包,怎么有的包名前面带‘@’,而有的就没有呢

node_modules

去查了一下,带‘@’说明时官方产的,比如@ant-design,这表示这是ant-design官方维护的,毕竟任何人都可以向 npm 中发布自己的包,npm中那么多包,主要可以分清是官方的包还是个人的包。

在看看node_modules下的目录里面各个目录是啥意思吧

.bin

第一种理解 可执行文件的替身都生成在这里 (参考)

.bin目录下的loose-envify文件其实是cli.js文件的替身


.bin

第二种理解(参考)

.bin 目录,这个目录不是任何一个 npm 包。目录下的文件,表示这是一个个软链接,打开文件可以看到文件顶部写着 #!/bin/sh ,表示这是一个脚本

那就再说点额外的话题

当执行npm run xxx的时候,先找package.json下srcipt字段中对应的命令,比如下图执行了webpack-dev-server命令,npm run dev 执行 webpack-dev-server 时,虽然没有安装 webpack-dev-server的全局命令,但是 npm 会到 ./node_modules/.bin 中找到 webpack-dev-server 文件作为脚本来执行,则相当于执行了 ./node_modules/.bin/webpack-dev-server

执行命令

.cache 编译缓存包

有时候在启动项目时发生一些莫名的错误,清除浏览器缓存不好使,可以清除编译缓存试试
手动删除.cache文件或者执行以下操作

rm -rf node_modules
npm cache clean
npm install

.staging 临时存储位置

.staging是在运行过程中出现的,当真正install所有包之后,node_modules里面的包就会显示正常,也就是说,出现这个就是没有加载完。当依赖彻底下载完之后,.staging的文件夹会自动消失
如果安装完还是只有.staging,需要删除packjson-lock文件,删除node_modules文件夹,然后重新 npm install

你可能感兴趣的:(关于包名-怎么包名还长得不一样呢)