使用npm踩过的坑

项目背景:

  • 项目使用的是前端框架是Vue , 使用Vue-cli搭建。
  • web移动网页,嵌入原生APP访问。
  • 项目中用到一些与原生APP交互的通用的api方法,为了便于维护及场景通用,抽取了一个npm依赖包app-mobile-api。通过地址访问法添加到package.json中:
    使用npm踩过的坑_第1张图片
    由于app-mobile-api组件放在公司代码仓库,只允许公司内网访问,所以在外网环境时执行 npm install 无法像vuevuex一样正常下载。

尝试流程:
先下载 app-mobile-api 以外的其他包,下载完成后切换网络环境到公司内网,执行npm install , 进程卡住不动…一段时间后报超时。。。
于是直接把 app-mobile-api 包(.zip包)下载下来,解压后放到node_modules中,结果又报以下的错误:
~This dependency was not found~
使用npm踩过的坑_第2张图片
然而 ~ app-mobile-api 包确实已经加入到 nodu_modules 中,且通过代码提示可以看到依赖生效,可是编译不通过。。。在网上找了许多资料,没有找到可行的办法。

无意间看到了npm和yarn的比较:

  1. npm 是顺序下载,易产生堵塞。没有缓存的功能。
  2. yarn是异步下载,依赖可同时下载,排前面的依赖下不下来不会堵塞后面的依赖。且有离线缓存的功能,依赖下载过一次之后,再次下载会从缓存里面取。

于是,把 node_modules 和package-lock.json删除,在package.json中把 app-mobile-api 这一行删除,然后用yarn代替npm下载项目依赖,执行 yarn 指令 ,等待外网包下载完成之后,添加app-mobile-api到package.json中,见图,

使用npm踩过的坑_第3张图片切换内网后继续执行 yarn 指令,卡住几秒后,任务跑起来了,一段时间后,app-mobile-api 包下下来了,哇哇哇~~ 终于下下来了,(**)~~~~

综上,提出建议,大家用npm下载依赖的时候,若下不下来,可以试试yarn,尝试有惊喜。

你可能感兴趣的:(工作相关,Vue,web前端开发技术)