How to Save Styles as a CSS File in Angular 4

I'm a beginner in Angular 4 and I'm trying to export my styles as a css file. Whenever I serve or build the project, it generates a style.bundle.js file and includes the css as an html style element. However, I would like to export it as a stylesheet file and load it using a link element.

This is my Angular-cli.json :

{
  "$schema": "./node_modules/@angular/cli/lib/config/schema.json",
  "project": {
    "name": "ares"
  },
  "apps": [
    {
      "name":"desktop",
      "root": "src",
      "outDir": "dist/desktop",
      "assets": [
        "assets",
        "favicon.ico",
        "views/desktop"
      ],
      "index": "index.html",
      "main": "main.ts",
      "polyfills": "polyfills.ts",
      "test": "test.ts",
      "tsconfig": "tsconfig.app.json",
      "testTsconfig": "tsconfig.spec.json",
      "prefix": "app",
      "styles": [
        "../node_modules/materialize-css/dist/css/materialize.css",
        "../node_modules/font-awesome/css/font-awesome.css",
        "assets/desktop/css/styles.scss",
        "views/desktop/trader/first/assets/css/theme.scss"
      ],
      "scripts": [
        "../node_modules/jquery/dist/jquery.js",
        "../node_modules/hammerjs/hammer.js",
        "../node_modules/materialize-css/dist/js/materialize.js"
      ],
      "environmentSource": "environments/environment.ts",
      "environments": {
        "dev": "environments/environment.ts",
        "prod": "environments/environment.prod.ts"
      }
    }
  ],
  "e2e": {
    "protractor": {
      "config": "./protractor.conf.js"
    }
  },
  "lint": [
    {
      "project": "src/tsconfig.app.json",
      "exclude": "**/node_modules/**"
    },
    {
      "project": "src/tsconfig.spec.json",
      "exclude": "**/node_modules/**"
    },
    {
      "project": "e2e/tsconfig.e2e.json",
      "exclude": "**/node_modules/**"
    }
  ],
  "test": {
    "karma": {
      "config": "./karma.conf.js"
    }
  },
  "defaults": {
    "styleExt": "scss",
    "component": {}
  }
}

Answer №1

When running the commands ng build or ng serve, a bundle such as styles.bundles.js is always created to save time during development. However, when using ng build --prod, it will generate styles.bundle.css.

If you prefer to have styles.bundle.css generated for your development build, simply add the flag --extract-css like this: ng serve --extract-css.

For more details on default flags that may come in handy:

https://i.sstatic.net/kGYUA.png

Similar questions

If you have not found the answer to your question or you are interested in this topic, then look at other similar questions below or use the search

The Vue 3 page does not allow scrolling unless the page is refreshed

I am encountering an issue with my vue3 web app. Whenever I attempt to navigate to a page using <router-link to ="/Dashboard"/> Here is the code for Dashboard.vue: <template> <div class="enquiry"> <div class= ...

Text alignment issues cause animation to vanish

Utilizing particles.js, I set up a full-screen particle effect by specifying the animation to be full-screen with height: 100vh;. This worked perfectly as intended. However, when attempting to add text on top of the particle animation and center it vertica ...

Adding a property during runtime to an object does not display in the current "this" context

Can anyone explain why the dynamic property added using Object.defineProperty does not show up when printing 'this' on the console? Here is a Decorator example. It seems to be working fine, but the success and error properties do not appear in & ...

Automating the Process of File Downloads Using Ajax and PHP

I am currently working on a form that requires users to enter a secret key. Once the key is submitted, it is verified against a database. If the key is found, the relevant file associated with the key should be downloaded automatically. I have successfully ...

Saving any type of file in SQL Server with a field type of varbinary(max) can be achieved by utilizing Angular with ASP.NET Core to create a REST API

I am currently facing an issue while attempting to save a file, such as an image, in the Microsoft SQL Server Management Studio through asp .NET core for the Rest API. I have managed to create a base64 representation of the file, but I am unsure about the ...

Verify whether the form inputs are necessary or optional when utilizing a specific directive

Hello, I am trying to determine if all the necessary fields are filled out in a form using jQuery only. I have attempted this: $('#form').find('input, select, textarea').each(function(){ if(!$(this).prop(&apo ...

JQuery unable to recognize dynamically inserted Anchor Tag through AJAX request

I am currently working on a page that is sourcing a large amount of data from a database through various PHP files. To achieve this, I am using JQuery to identify specific events and trigger AJAX requests to the necessary PHP file to display the required c ...

How can I make sure to consider the scrollbar when using viewport width units?

I've been working on developing a carousel similar to Netflix, but I'm facing an issue with responsiveness. I've been using a codepen example as a reference: Check out the example here The problem lies in the hardcoded width and height use ...

issues encountered when attempting to modify the background color of navigation items using bootstrap

Presently, I am focusing on enhancing the navigation bar of my website, but I have encountered an issue with my JavaScript code. I have implemented a scroll-spy feature in my navigation and added JavaScript for smooth scrolling. Additionally, I aim to make ...

Executing an ajax post when a user clicks on a link or button

<tr> <td> <span id="id_1"> <a href="/Path" >Name</a> <a href="#">Delete</a> </span> </td> &l ...

What is the best way to implement a gradual decrease in padding as the viewport resizes using JavaScript

My goal is to create a responsive design where the padding-left of my box gradually decreases as the website width changes. I want the decrease in padding to stop once it reaches 0. For instance, if the screen size changes by 1px, then the padding-left sh ...

In the XHTML mode, MathOverflow's invaluable mathematical expertise shines brightly

I am interested in incorporating the unique “piece of valuable flair™” from MathOverflow onto my website. The issue I am facing is that I want my webpage to comply with XHTML5 standards, meaning it should be served with the MIME type application/xht ...

When using Javascript innerhtml, it fails to recognize and properly parse Twig tags

I have a function in Twig that retrieves values from a database and displays them in a select box. I am attempting to update the content of the div, but I am facing an issue with innerHTML. When using {{ without quotes, it creates a new line which is flagg ...

Utilizing an if statement with a TypeScript DeepMap Union Type

I am attempting to create a Union type that includes optional fields in its structure. Here are the types I have defined: export type StartEndType = { start_date: string; end_date: string; }; export type PayrollContract = StartEndType & { type: ...

Is it possible to utilize attr() in order to set the background image? background-image:url(attr(src));

Is there a way to extract the src attribute value from an HTML file and store it in a variable in a css/scss file so I can easily use it in the url() property like this: <style> img[src]{ background-image:url(attr(src)); } ...

Creating a fixed navigation bar on the right side using Twitter Bootstrap

I'm attempting to incorporate 4 navigation buttons on the right side of a page, which when clicked will allow me to navigate to different sections within the same page, similar to a single-page design. To achieve this, I am including the following co ...

Vertical scrollbar in iframe unexpectedly appears immediately after the submit button is pressed

I have designed a contact form that is displayed in an iframe within an overlay div. I have carefully adjusted the dimensions of this div to ensure that there are no scrollbars visible when the form initially appears. However, after filling out the form an ...

The Mat-paginator is refusing to align to the right edge when scrolling the table horizontally in an Angular application

https://i.sstatic.net/l0cZ4.png Overview: My Angular component features a table with Angular Material's mat-table and paginator. Despite fetching data from a source, the paginator fails to float right when I scroll horizontally. Sample Code: <!- ...

Implementing precise search functionality in a table with jquery datatables

Hey there, I'm attempting to implement an exact search feature in jQuery datatables. In my table, I have a column called "status" with values of either "paid" or "unpaid". Currently, when I type "unpaid", it correctly displays only the unpaid record ...

D3 curved path with no circular shape

I'm trying to figure out how to create SVG arcs in HTML using d3js v3 that are not perfectly circular. The issue I'm facing is that the arcs I'm able to make end up looking like distorted circles instead of true non-circular arcs, resulting ...