npm下载依赖时的问题

今天遇到npm下载什么依赖都报错,导致醒目无法打开
报错:这是我去下载镜像报的错

C:\Users\Administrator>npm install --global vue-cli
npm ERR! code ERR_TLS_CERT_ALTNAME_INVALID
npm ERR! errno ERR_TLS_CERT_ALTNAME_INVALID
npm ERR! request to https://registry.cnpmjs.org/vue-cli failed, reason: Hostname/IP does not match certificate’s altnames: Host: registry.cnpmjs.org. is not in the cert’s altnames: DNS:r.cnpmjs.org
npm ERR! A complete log of this run can be found in:
npm ERR! C:\Users\Administrator\AppData\Roaming\npm-cache_logs\2021-06-07T03_39_27_641Z-debug.log

原因:我把C:\Users\Administrator\AppData\Roaming路径下的npmnpm-cache删除了,导致npm中项目运行,以及下载依赖无法下载的原因

解决办法

  1. 更换淘宝镜像

npm config set registry https://registry.npm.taobao.org

  1. 安装vue-cli

npm install -g vue-cli

11:43分的内容都是淘宝镜像添加后才有的,我一开始没有下载好,才导致一直报错
在这里插入图片描述
二、使用axios报错
原因:vue-cli版本的问题
解决:下载方法

//vue-cli2.0命令
$ npm install axios
//vue-cli3.0命令
$ npm add axios

三、“vue-style-loader”依赖的问题

 ERROR  Failed to compile with 1 errors                                                                       5:47:55 PM

This dependency was not found:

* !!vue-style-loader!css-loader?{"sourceMap":true}!../../node_modules/vue-loader/lib/style-compiler/index?{"vue":true,"id":"data-v-e97c7212","scoped":true,"hasInlineConfig":false}!sass-loader?{"sourceMap":true}!../../node_modules/vue-loader/lib/selector?type=styles&index=0!./movieDetail.vue in ./src/views/movieDetail.vue

To install it, you can run: npm install --save !!vue-style-loader!css-loader?{"sourceMap":true}!../../node_modules/vue-loader/lib/style-compiler/index?{"vue":true,"id":"data-v-e97c7212","scoped":true,"hasInlineConfig":false}!sass-loader?{"sourceMap":true}!../../node_modules/vue-loader/lib/selector?type=styles&index=0!./movieDetail.vue
Error from chokidar (E:\): Error: EBUSY: resource busy or locked, lstat 'E:\DumpStack.log.tmp'
Error from chokidar (E:\): Error: EBUSY: resource busy or locked, lstat 'E:\pagefile.sys'
Error from chokidar (E:\node_modules): Error: EBUSY: resource busy or locked, lstat 'E:\DumpStack.log.tmp'
Error from chokidar (E:\node_modules): Error: EBUSY: resource busy or locked, lstat 'E:\pagefile.sys'

原因:此类问题一般是缺少相关依赖而导致的,对于本例,仔细看一下报错提示信息,抓住关键词,vue-style-loader!css-loader,说明是css 解析的时候出了问题。
所以,解决方案就要根据情况而定,看你使用的CSS语言是什么,是 常规的 或者 less 或者 sass。
解决办法:安装依赖

如果是常规的,安装依赖,执行以下命令:

npm install stylus-loader css-loader style-loader --save-dev

如果是 less 的:

npm install less less-loader --save-dev

如果是 sass 的:

npm install sass sass-loader --save-dev
或者
npm intall sass-loader --save ; $npm install node-sass --save
一般只有在初始化配置的的时候才会出现这个问题,如果是已经完好的项目都会在 package.json 中已经配好,直接 install 即可。

四、vue 引入 scss 编译报错
解决了关于“vue-style-loader”依赖的问题,然后报了以下错误

ERROR  Failed to compile with 1 errors                                                                       6:07:54 PM
 error  in ./src/views/movieDetail.vue
Module build failed: TypeError: this.getOptions is not a function
    at Object.loader (E:\demo1\leftmenubar\node_modules\sass-loader\dist\index.js:25:24)
 @ ./node_modules/vue-style-loader!./node_modules/css-loader?{"sourceMap":true}!./node_modules/vue-loader/lib/style-comp
iler?{"vue":true,"id":"data-v-e97c7212","scoped":true,"hasInlineConfig":false}!./node_modules/sass-loader/dist/cjs.js?{"
sourceMap":true}!./node_modules/vue-loader/lib/selector.js?type=styles&index=0!./src/views/movieDetail.vue 4:14-376 13:3
-17:5 14:22-384
 @ ./src/views/movieDetail.vue
 @ ./src/router/index.js
 @ ./src/main.js
 @ multi (webpack)-dev-server/client?http://127.0.0.1:8080 webpack/hot/dev-server ./src/main.js

原因:sass-loader 版本过高
解决办法:减低版本 npm install sass-loader@7.3.1 --save-dev
五、Failed to load resource: net::ERR_FAILED问题
报以下错

Failed to load resource: net::ERR_FAILED
createError.js?16d0:16 Uncaught (in promise) Error: Network Error
    at createError (createError.js?16d0:16)
    at XMLHttpRequest.handleError (xhr.js?ec6c:84)

原因:跨域问题
解决办法:接口问题
六、flexbox.scss布局库出错
在这里插入图片描述
原因:这是css中一个flex.scss布局库传参的问题

.box {
@include flex-box(column, space-around);
}

解决办法:build文件下webpack.prod.conf.js的output中加入以下代码

publicPath: process.env.NODE_ENV === 'production'
      ? './' +config.build.assetsPublicPath
      : './' + config.dev.assetsPublicPath,

问题是解决了,这个配置没搞明白


版权声明:本文为chun_sh原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。