Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to use external JS files in Angular 6

Tags:

I started a project with Angular but I never thought that install the most recent version of it would bring me a couple of problems. I am also using Materialize so when I try to 'import' its Javascript file it doesn't work. I don't know why, I was looking for an answer since the past Friday but I found nothing.

I have changed the angular.json file and referenced my JS location in it but it doesn't was sufficient.

P.D. I must not use the CDN for materialize JS.

like image 577
Ricardo Luna Avatar asked Jun 13 '18 16:06

Ricardo Luna


People also ask

How do I use an external JavaScript file?

To include an external JavaScript file, we can use the script tag with the attribute src . You've already used the src attribute when using images. The value for the src attribute should be the path to your JavaScript file. This script tag should be included between the <head> tags in your HTML document.


1 Answers

CLI projects in angular 6 onwards uses angular.json instead of .angular-cli.json for build and project configuration. That implies you are using Angular 6.
As of v6, the location of the file has changed to angular.json. Since there is no longer a leading dot, the file is no longer hidden by default and is on the same level. which also means that file paths in angular.json should not contain leading dots and slash i.e you should provide an absolute path

Install MaterializeCSS and angular2-materialize from npm

 npm install materialize-css --save   npm install angular2-materialize --save   npm install jquery@^2.2.4 --save  npm install hammerjs --save 

After installing all the required dependencies add them to styles and scripts array of angular.json

"styles": [                     "src/styles.css",       "node_modules/materialize-css/dist/css/materialize.css" ], "scripts": [       "node_modules/jquery/dist/jquery.js",        "node_modules/hammerjs/hammer.js",        "node_modules/materialize-css/dist/js/materialize.js"  ] 

For Angular Version 11+

Configuration

The styles and scripts options in your angular.json configuration now allow to reference a package directly:

before: "styles": ["../node_modules/bootstrap/dist/css/bootstrap.css"]
after: "styles": ["bootstrap/dist/css/bootstrap.css"]

P.S
Additonal Info: Error import javascript library in typescript

like image 152
Vikas Avatar answered Oct 05 '22 08:10

Vikas