日常问题总结

218 阅读3分钟
windows环境下运行vscode,执行脚本命令报错:因为在此系统上禁止运行脚本。有关详细信息

问题原因:windows系统出于安全考虑,默认禁止脚本文件运行的

解决方案:

  • win + x 以管理员身份运行PowerShell
  • 入set-executionpolicy remotesigned,设置成Y即可
windows安装sass-loader后编译报错Cannot find module sass

问题原因:因为没有安装node-sass模块

解决方案:npm install node-sass --save-dev

npm install安装依赖时报错ERESOLVE unable to resolve dependency tree

问题原因:依赖项中存在无法解决的冲突,npm@7 现在尝试安装它们,而npm@6没有。

解决方案:使用 npm i --legacy-peer-deps

git分支远程推送后,本地拉取不到最新分支

问题原因:本地git分支没有同步远程

解决方案:

  • git branch -a查看所有本地可拉取分支
  • 如果有则git checkout获取,否则需要手动git fetch进行远程分支同步
git拉取项目,出现eslint报错error Expected linebreaks to be 'LF' but found 'CRLF' linebreak-style

问题原因:项目代码做了eslint的规范检查,规定了换行需要以unix系统的换行方式,Linux下只有换行LF,在window下换行默认是CRLF,在window系统下git pull项目的时候,git会默认将文件中的LF换行方式转为系统默认的CRLF换行格式,才会导致用vscode打开时,所有的文件都是CRLF,这样代码提交后,会出现编译问题。

解决方案:

  • 设置git拉取代码不进行换行方式转换

    git config --global core.autocrlf input
    # 具体取值有 input true false
    # true: Git可以在你提交时自动地把行结束符CRLF转换成LF,而在签出代码时把LF转换成CRLF。用core.autocrlf来打开此项功能,如果是在Windows系统上,把它设置成true,这样当签出代码时,LF会被转换成CRLF
    # false: Linux或Mac系统使用LF作为行结束符,因此你不想 Git 在签出文件时进行自动的转换;当一个以CRLF为行结束符的文件不小心被引入时你肯定想进行修正,把core.autocrlf设置成false来告诉 Git 在提交时把CRLF转换成LF,签出时不转换
    # input: Linux或Mac系统使用LF作为行结束符,因此你不想 Git 在签出文件时进行自动的转换;当一个以CRLF为行结束符的文件不小心被引入时你肯定想进行修正,把core.autocrlf设置成input来告诉 Git 在提交时把CRLF转换成LF,签出时不转换:
    

    在实际使用中出现设置false还是被转换了,但设置input生效的情况

  • 设置vscode的换行方式为LF

    打开设置 --> 搜索files:eol

    • \n 对应 LF
    • \r\n 对应 CRLF
    sass使用变量保存&-- 会多出空格问题

    问题原因:sass在做计算后,会在前后多出空格

    .el-tag {
        $primary: &--primary;
        background: blue;
        &--dark {
            &#{$primary} {
                background: red;
            }
        }
    }
    //打包后代码
    .el-tag {
      background: blue;
    }
    .el-tag--dark.el-tag --primary {
      background: red;
    }
    

    解决方案:使用 +进行连接

    .el-tag {
        $primary: &+--primary;
        background: blue;
        &--dark {
            &#{$primary} {
                background: red;
            }
        }
    }
    //打包后代码
    .el-tag {
      background: blue;
    }
    .el-tag--dark.el-tag--primary {
      background: red;
    }
    

\