Angular.json片段:
"root": "",
"sourceRoot": "src",
"prefix": "ra",
"architect": {
"build": {
"builder": "@angular-devkit/build-angular:browser",
"options": {
"outputPath": "dist/",
"index": "src/index.html",
"main": "src/main.ts",
"polyfills": "src/polyfills.ts",
"tsConfig": "tsconfig.app.json",
"aot": false,
"assets": [
"src/assets",
"src/favicon.ico",
],
"styles": [
"src/styles.scss"
],
"stylePreprocessorOptions": {
"includePaths": ["assets/scss"]
},
}
Angular 新手,我认为我有一个简单的问题,但只是不了解scss编译的内部工作原理。我在我的根styles.scss组件中导入了一些scss 。这是styles.scss中的内容:
@import './assets/scss/global';
这是_global.scss中的内容:
@import './variables';
这是该文件的内容:
$spacer-4: 0.25em; //4px
$spacer-6: 0.375em; //6px
$spacer-8: 0.5em; //8px
$spacer-10: 0.625em; //10px
$spacer-12: 0.75em; //12px
$spacer-16: 1em; //16px
$spacer-20: 1.25em; //20px
$spacer-24: 1.5em; //24px
$spacer-30: 1.875em; //30px
$spacer-32: 2em; //32px
$spacer-36: 2.25em; //36px
问题出在组件的 scss 文件中,该文件引用了其中一个变量。从组件抛出错误:
ERROR in ./src/navigation/app-navigation/app-navigation.component.scss
Module build failed (from ./node_modules/sass-loader/lib/loader.js):
margin-top: $spacer-10;
^
Undefined variable.
如果我没有收到找不到文件的编译时错误,那么我不应该看到这个错误,对吧?
这是应用程序的文件结构:
-- src
-- app
-- navigation
--app-navigation
-- app-navigation.component.scss
-- assets
-- scss
-- _global.scss
-- _variables.scss
-- styles.scss