【问题标题】:How to use global css in non cli angular project?如何在非 cli 角度项目中使用全局 css?
【发布时间】:2019-10-03 13:07:55
【问题描述】:

我将 ASP.NET MVC 作为服务器,将 Angular 作为客户端应用程序。

我没有静态 index.html,但它是 index.cshtml。我使用的样式是全局样式,而不是组件范围。

我的问题是如何使用 angular/webpack 和 MVC 处理 scss 样式文件(一堆)?

是否必须在 app.component 文件中手动导入“全局样式文件”?我对像引导程序这样的供应商 css 文件做同样的事情吗?

最佳做法是什么?我的想法如下:

    import { Component } from '@angular/core';

    import '../styles/myglobalStyles.css'
    import '../styles/boostrap.min.css'
    import '../styles/otherVendors.min.css' 

    @Component({
      selector: 'my-app',
      templateUrl: './app.component.html'
    })
    export class AppComponent { }

另一个问题是在 ANGULAR CLI 设置中,所做的是在angular-cli.json 文件中添加以下内容。它有什么作用?它是否在构建期间将styles.css 文件添加到app.component.html? (您能指出任何来源/文档吗?)

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

【问题讨论】:

  • 你可以在styles.csscomponent.scss中添加所有的css来调用styles这样的东西。 @import "../../../styles"; 然后你只调用HTML 中的类就可以了。
  • 请不要这样改变你的问题。这样做会使当前答案无效。如果您有新问题,ask one - 不要用新问题编辑现有问题。另外,请花点时间阅读this meta post
  • @Zoe,好的。有没有办法得到我的“新”问题的内容?
  • 如果你指的是我回滚的修订版,有。如果您单击“已编辑 分钟前”文本,您将被重定向到 the revision history。如果您点击任何修订的“来源”,您可以get the plain text version
  • 知道了。谢谢老哥!

标签: css angular typescript webpack ecmascript-6


【解决方案1】:

您应该使用 webpack 捆绑所有 scss 文件并将所有 scss 文件转换为 css,然后将其提取到文件调用 lib.css 然后将其包含在 Layout.cshtml 中,因为它是您应用程序的全局样式。也许为了提高你可以使用第三方库来丑化你的 css 代码也可以提高性能

干杯

【讨论】:

  • 你有 webpack 配置示例吗?
  • 我有很多例如_button.scss 文件被 @imported 到 main.scss 文件”,那么我如何确保只有转换后的“main.css”文件被附加到应用程序中,并且还有单独的 vender.css(例如 bootstrap.scss 文件)? 我没有看到您提供的 wepackconfig 正在这样做。
  • 我将所有内容都包含在 lib.scss 中,以便提取到 css 文件名 lib.css
【解决方案2】:

组件样式 styleURL 元数据中引用的样式、组件模板中的内联样式或导入到组件中的样式启用 CSS 封装,这意味着它们的范围仅限于单个组件以防止冲突。

@Component({
  selector: 'comp',
  templateUrl: './comp.component.html',
  styleUrls: ['./comp.component.css']
})

样式范围文档https://angular.io/guide/component-styles#style-scope

要创建将应用于任何元素的全局样式规则,您可以添加其他样式文件,包括将供应商 css 到 agular.json,该文件将由 webpack(嵌入在 cli 中)捆绑并链接到索引。 html.

将其添加到 angular.json 中的样式数组中:

"styles": [
  "styles.css",
  "../styles/boostrap.min.css"
],

查看有关 angular cli 工作区配置的文档 https://angular.io/cli#workspace-and-project-configuration

【讨论】:

  • 我想要的是“非 cli”解决方案。我没有 angular.json 文件。
  • 那么您将需要使用 webpack 或类似的构建系统来编译您的打字稿、摇树、捆绑和分块您的应用程序代码,用于开发和生产。要使用 webpack,您需要将其添加到您的项目中并进行配置。创建 CLI 的全部原因是为了减少配置 webpack 所需的学习曲线。 CLI 嵌入了 webpack。但这是可以完成的。这是一篇很有前途的文章medium.freecodecamp.org/…
猜你喜欢
  • 2020-05-30
  • 2017-08-22
  • 2017-12-13
  • 1970-01-01
  • 2019-05-20
  • 1970-01-01
  • 1970-01-01
  • 2015-10-30
  • 1970-01-01
相关资源
最近更新 更多