为什么在尝试将Angular项目从基于CSS的项目转换为SCSS的项目时出现此错误?

问题描述

我在尝试将使用CSS的Angular项目转换为使用SCSS SASS的项目时遇到了一些问题。

我正在关注本教程:https://medium.com/@ngubanethabo.ambrose/migrate-from-css-to-scss-stylesheets-for-existing-angular-application-d61f8061f5b7

所以我执行了以下命令:

ng config schematics.@schematics/angular:component.styleext scss

现在进入我的 angular.json 文件,我具有正确的值:

“示意图”:{ “ @ schematics / angular:component”:{ “ styleext”:“ scss” }

然后,我尝试按照说明使用重命名工具,但是没有用。我执行了:

sudo renamer -d --path-element ext --find css -replace scss *

获得此错误

developer@developer-virtual-machine:~/Documents/Angular-WS/color_patch/src$ sudo renamer -d --path-element ext --find css -replace scss *
Singular option already set [path-element=ext]

所以我尝试手动执行此操作:

问题是,现在执行 ng服务时,我收到以下错误消息:

ERROR in multi ./node_modules/bootstrap/dist/css/bootstrap.scss ./node_modules/primeicons/primeicons.scss ./node_modules/primeng/resources/themes/nova-light/theme.scss ./node_modules/primeng/resources/primeng.min.scss ./node_modules/@fullcalendar/core/main.min.scss ./node_modules/@fullcalendar/daygrid/main.min.scss ./node_modules/@fullcalendar/timegrid/main.min.scss ./node_modules/font-awesome/css/font-awesome.scss ./src/styles.css
Module not found: Error: Can't resolve '/home/developer/Documents/Angular-WS/color_patch/node_modules/@fullcalendar/core/main.min.scss' in '/home/developer/Documents/Angular-WS/color_patch'
ERROR in multi ./node_modules/bootstrap/dist/css/bootstrap.scss ./node_modules/primeicons/primeicons.scss ./node_modules/primeng/resources/themes/nova-light/theme.scss ./node_modules/primeng/resources/primeng.min.scss ./node_modules/@fullcalendar/core/main.min.scss ./node_modules/@fullcalendar/daygrid/main.min.scss ./node_modules/@fullcalendar/timegrid/main.min.scss ./node_modules/font-awesome/css/font-awesome.scss ./src/styles.css
Module not found: Error: Can't resolve '/home/developer/Documents/Angular-WS/color_patch/node_modules/@fullcalendar/daygrid/main.min.scss' in '/home/developer/Documents/Angular-WS/color_patch'
ERROR in multi ./node_modules/bootstrap/dist/css/bootstrap.scss ./node_modules/primeicons/primeicons.scss ./node_modules/primeng/resources/themes/nova-light/theme.scss ./node_modules/primeng/resources/primeng.min.scss ./node_modules/@fullcalendar/core/main.min.scss ./node_modules/@fullcalendar/daygrid/main.min.scss ./node_modules/@fullcalendar/timegrid/main.min.scss ./node_modules/font-awesome/css/font-awesome.scss ./src/styles.css
Module not found: Error: Can't resolve '/home/developer/Documents/Angular-WS/color_patch/node_modules/@fullcalendar/timegrid/main.min.scss' in '/home/developer/Documents/Angular-WS/color_patch'
ERROR in multi ./node_modules/bootstrap/dist/css/bootstrap.scss ./node_modules/primeicons/primeicons.scss ./node_modules/primeng/resources/themes/nova-light/theme.scss ./node_modules/primeng/resources/primeng.min.scss ./node_modules/@fullcalendar/core/main.min.scss ./node_modules/@fullcalendar/daygrid/main.min.scss ./node_modules/@fullcalendar/timegrid/main.min.scss ./node_modules/font-awesome/css/font-awesome.scss ./src/styles.css
Module not found: Error: Can't resolve '/home/developer/Documents/Angular-WS/color_patch/node_modules/font-awesome/css/font-awesome.scss' in '/home/developer/Documents/Angular-WS/color_patch'
ERROR in multi ./node_modules/bootstrap/dist/css/bootstrap.scss ./node_modules/primeicons/primeicons.scss ./node_modules/primeng/resources/themes/nova-light/theme.scss ./node_modules/primeng/resources/primeng.min.scss ./node_modules/@fullcalendar/core/main.min.scss ./node_modules/@fullcalendar/daygrid/main.min.scss ./node_modules/@fullcalendar/timegrid/main.min.scss ./node_modules/font-awesome/css/font-awesome.scss ./src/styles.css
Module not found: Error: Can't resolve '/home/developer/Documents/Angular-WS/color_patch/node_modules/primeicons/primeicons.scss' in '/home/developer/Documents/Angular-WS/color_patch'
ERROR in multi ./node_modules/bootstrap/dist/css/bootstrap.scss ./node_modules/primeicons/primeicons.scss ./node_modules/primeng/resources/themes/nova-light/theme.scss ./node_modules/primeng/resources/primeng.min.scss ./node_modules/@fullcalendar/core/main.min.scss ./node_modules/@fullcalendar/daygrid/main.min.scss ./node_modules/@fullcalendar/timegrid/main.min.scss ./node_modules/font-awesome/css/font-awesome.scss ./src/styles.css
Module not found: Error: Can't resolve '/home/developer/Documents/Angular-WS/color_patch/node_modules/primeng/resources/primeng.min.scss' in '/home/developer/Documents/Angular-WS/color_patch'
ERROR in multi ./node_modules/bootstrap/dist/css/bootstrap.scss ./node_modules/primeicons/primeicons.scss ./node_modules/primeng/resources/themes/nova-light/theme.scss ./node_modules/primeng/resources/primeng.min.scss ./node_modules/@fullcalendar/core/main.min.scss ./node_modules/@fullcalendar/daygrid/main.min.scss ./node_modules/@fullcalendar/timegrid/main.min.scss ./node_modules/font-awesome/css/font-awesome.scss ./src/styles.css
Module not found: Error: Can't resolve '/home/developer/Documents/Angular-WS/color_patch/node_modules/primeng/resources/themes/nova-light/theme.scss' in '/home/developer/Documents/Angular-WS/color_patch'
ERROR in multi ./node_modules/bootstrap/dist/css/bootstrap.scss ./node_modules/primeicons/primeicons.scss ./node_modules/primeng/resources/themes/nova-light/theme.scss ./node_modules/primeng/resources/primeng.min.scss ./node_modules/@fullcalendar/core/main.min.scss ./node_modules/@fullcalendar/daygrid/main.min.scss ./node_modules/@fullcalendar/timegrid/main.min.scss ./node_modules/font-awesome/css/font-awesome.scss ./src/styles.css
Module not found: Error: Can't resolve '/home/developer/Documents/Angular-WS/color_patch/src/styles.css' in '/home/developer/Documents/Angular-WS/color_patch'
** Angular Live Development Server is listening on localhost:4200,open your browser on http://localhost:4200/ **

为什么?怎么了?我想念什么?如何正确将其转换为SCSS项目?

EDIT-1 :这是我的 angular.json 文件内容

{
  "$schema": "./node_modules/@angular/cli/lib/config/schema.json","version": 1,"newProjectRoot": "projects","projects": {
    "color_patch": {
      "projectType": "application","schematics": {},"root": "","sourceRoot": "src","prefix": "app","architect": {
        "build": {
          "builder": "@angular-devkit/build-angular:browser","options": {
            "outputPath": "dist/color_patch","index": "src/index.html","main": "src/main.ts","polyfills": "src/polyfills.ts","tsConfig": "tsconfig.app.json","aot": true,"assets": [
              "src/favicon.ico","src/assets"
            ],"styles": [
              "node_modules/bootstrap/dist/css/bootstrap.scss","./node_modules/primeicons/primeicons.scss","./node_modules/primeng/resources/themes/nova-light/theme.scss","./node_modules/primeng/resources/primeng.min.scss","node_modules/@fullcalendar/core/main.min.scss","node_modules/@fullcalendar/daygrid/main.min.scss","node_modules/@fullcalendar/timegrid/main.min.scss","./node_modules/font-awesome/css/font-awesome.scss","src/styles.scss"
            ],"scripts": []
          },"configurations": {
            "production": {
              "fileReplacements": [
                {
                  "replace": "src/environments/environment.ts","with": "src/environments/environment.prod.ts"
                }
              ],"optimization": true,"outputHashing": "all","sourceMap": false,"extractCss": true,"namedChunks": false,"extractLicenses": true,"vendorChunk": false,"buildOptimizer": true,"budgets": [
                {
                  "type": "initial","maximumWarning": "2mb","maximumError": "5mb"
                },{
                  "type": "anyComponentStyle","maximumWarning": "6kb","maximumError": "10kb"
                }
              ]
            }
          }
        },"serve": {
          "builder": "@angular-devkit/build-angular:dev-server","options": {
            "browserTarget": "color_patch:build"
          },"configurations": {
            "production": {
              "browserTarget": "color_patch:build:production"
            }
          }
        },"extract-i18n": {
          "builder": "@angular-devkit/build-angular:extract-i18n","options": {
            "browserTarget": "color_patch:build"
          }
        },"test": {
          "builder": "@angular-devkit/build-angular:karma","options": {
            "main": "src/test.ts","tsConfig": "tsconfig.spec.json","karmaConfig": "karma.conf.js","styles": [
              "src/styles.css"
            ],"scripts": []
          }
        },"lint": {
          "builder": "@angular-devkit/build-angular:tslint","options": {
            "tsConfig": [
              "tsconfig.app.json","tsconfig.spec.json","e2e/tsconfig.json"
            ],"exclude": [
              "**/node_modules/**"
            ]
          }
        },"e2e": {
          "builder": "@angular-devkit/build-angular:protractor","options": {
            "protractorConfig": "e2e/protractor.conf.js","devServerTarget": "color_patch:serve"
          },"configurations": {
            "production": {
              "devServerTarget": "color_patch:serve:production"
            }
          }
        },"deploy": {
          "builder": "@angular/fire:deploy","options": {}
        }
      }
    }
  },"defaultProject": "color_patch","schematics": {
    "@schematics/angular:component": {
      "styleext": "scss"
    }
  }
}

解决方法

尝试更新此部分:

"styles": [
          "src/styles.css"
        ],

对此:

"styles": [
          "src/styles.scss"
        ],

编辑:

尝试删除第一个:"schematics": {}, 并检查您的@imports

编辑2:

更改此项:

           "styles": [
          "node_modules/bootstrap/dist/css/bootstrap.scss","./node_modules/primeicons/primeicons.scss","./node_modules/primeng/resources/themes/nova-light/theme.scss","./node_modules/primeng/resources/primeng.min.scss","node_modules/@fullcalendar/core/main.min.scss","node_modules/@fullcalendar/daygrid/main.min.scss","node_modules/@fullcalendar/timegrid/main.min.scss","./node_modules/font-awesome/css/font-awesome.scss","src/styles.scss"
        ],

对此:

           "styles": [
          "../node_modules/bootstrap/dist/css/bootstrap.scss","../node_modules/primeicons/primeicons.scss","../node_modules/primeng/resources/themes/nova-light/theme.scss","../node_modules/primeng/resources/primeng.min.scss","../node_modules/@fullcalendar/core/main.min.scss","../node_modules/@fullcalendar/daygrid/main.min.scss","../node_modules/@fullcalendar/timegrid/main.min.scss","../node_modules/font-awesome/css/font-awesome.scss",