zoukankan      html  css  js  c++  java
  • vue 安装scss

    常规安装步骤:

       npm install node-sass --save-dev
       npm install sass-loader --save-dev
    

    在buildwebpack.base.conf.js rule中添加

      {
            test: /.scss$/,
            loaders: ['style', 'css', 'sass']
      }
    

    在style标签中加入

      <style lang="scss"></style>
    

    编译正常运行。。。。

    可惜我的不正常,安装过程中出现的一些问题:

    问题一

      MSBUILD : error MSB3428: 未能加载 Visual C++ 组件“VCBuild.exe”。要解决此问题,1) 安装 .NET Framework 2.0
      SDK;2) 安装 Microsoft Visual Studio 2005;或 3) 如果将该组件安装到了其他位置,请将其位置
      添加到系统路径中。 [D:software
    pmcacheprefix
    ode_modules
    ode-sassuildinding.sln]
      已完成生成项目“D:software
    pmcacheprefix
    ode_modules
    ode-sassuildinding.sln”(默认
      目标)的操作 -
      失败。
      生成失败。
      “D:software
    pmcacheprefix
    ode_modules
    ode-sassuildinding.sln”(默认目标) (1) ->   
      (_src_libsass 目标) -> 
      MSBUILD : error MSB3428: 未能加载 Visual C++ 组件“VCBuild.exe”。要解决此问题,1) 安装 .NET Framework 2.
      0 SDK;2) 安装 Microsoft Visual Studio 2005;或 3) 如果将该组件安装到了其他位置,请将其位 
      置添加到系统路径中。 [D:software
      npmcacheprefix
    ode_modules
    ode-sassuildinding.sln]
    

    错误原因:缺少windows构建插件
    解决方法:在命令行工具中运行:

      npm install –global –production windows-build-tools (全局安装windows构建工具)
    

    注意:一定要使用管理员打开命令才有权限构建工具

    问题二:

      Module build failed:
      #top_menu {
                ^
            Invalid CSS after "#top_menu {": expected "}", was "{"
            in F:demo-huisrccomponentsTopMenu.vue (line 24, column 12)
    
       @ ./node_modules/vue-style-loader!./node_modules/css-loader?{"sourceMap":true}!./node_modules/vue-loader/lib/style-compiler?{"vue":true,"id":"data-v-            91b6ff58","scoped":true,"hasInlineConfig":false}!./node_modules/sass-loader/lib/loader.js?{"indentedSyntax":true,"sourceMap":true}!./node_modules/vue-loader/lib/selector.js?type=styles&index=0!./src/components/TopMenu.vue 4:14-398 13:3-17:5 14:22-406
    

    这个问题涉及到 sass 和 scss 的区别。sass 的语法规则是一种缩进语法。而 scss 语法与 css 语法相近,使用大括号。上面那个例子中,home.vue 文件中的 style 标签,lang 属性设置成了 sass,代码如下:

      <style lang="sass" rel="stylesheet/scss" scoped>
    

    然而 style 标签里面的内容是scss,这导致了编译器报错。所以为了解决这个问题,需要把上面的代码改成如下形式:

      <style lang="scss" rel="stylesheet/scss" scoped>
    

    lang 属性变成 scss,所有关于语法的地方都设置成 scss,这样问题就解决了。

    问题三

      ERROR  Failed to compile with 1 errors                                              4:16:32 ├F10: PM┤
       error  in ./src/App.vue
    
      Module build failed: TypeError [ERR_INVALID_ARG_TYPE]: The       "path" argument 
      must be of type string. Received undefined
          at validateString (internal/validators.js:120:11)
          at Object.join (path.js:375:7)
          at getSassOptions (E:study-in-company
    ode_modulessass-loaderdistutils.js:160:37)
          at Object.loader (E:study-in-company
    ode_modulessass-loaderdistindex.js:36:49)
    
       @ ./node_modules/vue-style-loader!./node_modules/css-loader?{"sourceMap":true}!./node_modules/vue-loader/lib/style-compiler?{"vue":true,"id":"data-v-      7ba5bd90","scoped":false,"hasInlineConfig":false}!./node_modules/sass-loader/dist/cjs.js?{"sourceMap":true}!./node_modules/vue-loader/lib/selector.js?type=styles&index=0!./src/App.vue 4:14-357 13:3-17:5 14:22-365
       @ ./src/App.vue
       @ ./src/main.js
       @ multi (webpack)-dev-server/client?http://localhost:8080       webpack/hot/dev-server ./src/main.js
    

    这个错误是sass-loader 版本造成的,此时的版本是

      "sass-loader": "^10.0.1",
    

    修改版本为

      "sass-loader": "^8.0.2",
    

    然后报以下错误:

      Failed to compile with 1 errors            17:08:39
    
       error  in ./src/components/HelloWorld.vue
    
      Module build failed: TypeError: loaderContext.getResolve is not a function
          at getWebpackImporter (F:demo-hui
    ode_modulessass-loaderdistutils.js:274:37)
          at Object.loader (F:demo-hui
    ode_modulessass-loaderdistindex.js:42:61)
    
       @ ./node_modules/vue-style-loader!./node_modules/css-loader?{"sourceMap":true}!./node_modules/vue-loader/lib/style-compiler?{"vue":true,"id":"data-v-469af010","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/components/HelloWorld.vue 4:14-375 13:3-17:5 14:22-383
       @ ./src/components/HelloWorld.vue
       @ ./src/router/index.js
       @ ./src/main.js
       @ multi (webpack)-dev-server/client?http://localhost:8080 
      webpack/hot/dev-server ./src/main.js
    

    然后修改版本为

      "sass-loader": "^7.3.1",
    

    编译不再报错。

  • 相关阅读:
    Kubernetes 部署 Kubernetes-Dashboard v2.0.0
    Kubernetes 部署 Metrics Server 获取集群指标数据
    内网终端安全建设(转)
    内网安全运营的逻辑体系架构(转)
    thinkphp5配置文件
    MySQL索引失效的几种情况
    workman使用
    长连接技术(Long Polling)
    php好文章的记录
    php类与对象得使用场景
  • 原文地址:https://www.cnblogs.com/juanph/p/13585706.html
Copyright © 2011-2022 走看看