javascript – 为什么angular cli不包括我的组件scss?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – 为什么angular cli不包括我的组件scss?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3230字,纯文字阅读大概需要5分钟。
内容图文
![javascript – 为什么angular cli不包括我的组件scss?](/upload/InfoBanner/zyjiaocheng/781/feefaccfafaa4aecb7a13ffc22530a66.jpg)
我正在使用:
> Angular v2.3.1
> Angular CLI v1.0.0-beta.24
>节点v6.9.2
> Node-sass v4.1.1
我有一个新的Angular CLI项目,它不加载组件样式,尽管它们显示在main.bundle.js文件中,并且不再抛出路径错误(不再).
angular-cli.json文件有defaults.styleExt:“scss”和apps.styles:[“styles.scss”,“path / to / bootstrap.css”].样式和模板的defaults.inline都是false.
正在加载Global和Bootstrap样式,但不是任何来自组件的样式.
目录结构
|- src
|- index.html
|- styles.scss
|- scss
|- _colors.scss
|- _modals.scss
|- _overrides.scss
|- _utils.scss
|- app
|- components
|- app-header
|- app-header.component.ts
|- app-header.component.html
|- app-header.component.scss
|- pages
|- app-routing.module.ts
|- app.component.ts
|- app.module.ts
styles.scss
@import './scss/_colors';
@import './scss/_overrides';
@import './scss/_utils';
@import './scss/_modals';
html, body {
width: 100%;
height: 100%;
font-family: 'Roboto', 'Helvetica', sans-serif;
}
app-root {
display: table;
width: 100%;
height: 100%;
}
APP-header.component.ts
import {Component} from '@angular/core';
@Component({
selector: 'app-header',
templateUrl: './app-header.component.html',
styleUrls: ['./app-header.component.scss']
})
export class AppHeaderComponent {}
APP-header.component.scss
@import '../../../../scss/_colors';
:host {
display: table-row;
height: 1px;
background: #FFF;
}
.header-stripe {
width: 100%;
height: 3px;
background: $AMARANTH;
}
.header-content {
padding: 5px 20px;
width: 100%;
position: relative;
border-bottom: solid 1px $ALTO;
}
的index.html
<!doctype html>
<html>
<head>
<base href="./">
<title>Test CLI App</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:100,300,400" />
</head>
<body>
<app-root>Loading...</app-root>
</body>
</html>
一些背景……
我使用Angular2 Heroes教程开始了这个项目.我在测试和其他事情“正常工作”时遇到了麻烦.在我的研究期间,我决定尝试使用Angular CLI,因为它应该包括一个功能正常的测试床,并希望其他一些好处.
最初,我的模板和样式路径有很多JS错误,在digging和digging之后,我能够摆脱错误.我的webpack构建现在被认为是“有效的”.
在我的angular-cli.json文件中,我将defaults.styleExt更新为scss,并且通过将styles.scss文件添加到apps.styles,我能够获得全局样式.我的核心布局样式和Bootstrap样式现在正在应用于应用程序.
我的问题是由于某种原因,我的组件样式没有被加载.正如我所说,在我运行构建之后,它们出现在main.bundle.js中,并且我已经确认它们位于main.bundle.js中,当我运行服务时它们被加载到chrome中(不确定是否文件是相同的,因为我可以运行ng服务而无需先运行构建).它看起来好像变量是由node-sass正确解析的.
没用的东西:
>在angular-cli.json,app.styles:[“app / ** / * .scss”].它表示在重建时无法解析路径.
>在组件文件中,styleUrls:[require(‘./ app-header.component.scss’)].引发控制台错误“未捕获错误:无法找到模块”.在webpackMissingModule(main.bundle.js:1152)[]“
>在组件文件中,从’./app-header.component.scss’导入componentStyles,然后输出样式:[componentStyles].抛出“无法找到模块’./app-header.component.scss’.”建设的时候
我很惊讶这是如此复杂,我必须错过一些愚蠢的东西.
解决方法:
迟到了,但遇到了同样的事情.把它当作那个遇到这个帖子的人的另一种选择.
一切都在渲染,风格如上所述,但实际上并没有显示.
发现这篇文章在Shadow DOM Strategies解决了我的问题.
具体设置封装:ViewEncapsulation.None使得样式显示给定组件正确.
内容总结
以上是互联网集市为您收集整理的javascript – 为什么angular cli不包括我的组件scss?全部内容,希望文章能够帮你解决javascript – 为什么angular cli不包括我的组件scss?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。