【Angular4+】从入门到精通(四)引入第三方库,以jquery,bootstrap为例

Angular的生态系统是很全的,想用什么组建一般可以直接在npm或者github上面找到,找到后直接引入简单配置后就能使用,并且引入的源都有引入方式说明。下面介绍一下angular第三方库的引入,以jquery,bootstrap库为例:

大家看一下项目目录,注意:项目目录有一个package.json文件。

文件中有两个依赖对象:

dependencies”:需要发布到生产环境

devDependencies”:里面的插件只用于开发环境,不用于生产环境

依赖在哪呢?在项目目录的node_modules文件夹下。我们安装的项目依赖被下载到node_nodules文件夹先,那么如何安装这些依赖呢?大家还记得创建完项目后进入项目路径执行yarn install的操作不?就是安装依赖。

第一种方法:想集成依赖的话直接在dependencies或者devDependencies中加入依赖便可,加入完成后执行yarn install,系统会自动下载package.json包中更新的依赖。

第二种方法:习惯的依赖添加方式是:npm install name --save或者yarn add name --save  :添加依赖到dependencies中,npm install name --save-dev :添加项目到devDependencies中,注意命令执行的路径是在根路径下面。

执行完此操作后系统会下载安装的依赖库到node_modules下,同时更新package.json文件。一举两得。

jquery以及bootstrap的安装

我们的网站依靠bootstrap的样式来达到美观的要求,首先安装bootstrap:

在项目路径下执行npm install bootstrap --save或者yarn add bootstrap --save

安装完成后在dependencies中生成bootstrap的依赖,同时在node_modules中也有了次依赖

此时想使用bootstrap的样式还是不行的,因为没有将样式添加到项目中,现在的bootstrap就是一个摆设,啥作用没有还占空间,接下来将bootstrap的css以及js文件添加到项目中。

在项目路径下有一个angular.json

但是项目启动将bootstrap的css文件以及js文件添加到如图目录项,这样在项目中任何的组件中都可以运用bootstrap提供的样式了。

但是项目启动后会出现异常:

这是由于bootstrap的js需要依赖jquery的js文件,所以将jquery集成到项目中来:

yarn add jquery --save

添加jquery到angular.json中如图

修改完angular.json文件后需要重新启动项目才能生效。

在用yarn安装bootstrap的时候出现了一个警告:
warning " > [email protected]" has unmet peer dependency "[email protected] - 3".
warning " > [email protected]" has unmet peer dependency "popper.js@^1.14.3".

jquery安装完了,popper.js这个事什么鬼,安装一下吧!yarn add popper.js --save精力实在有限感兴趣的可以去了解一下,但是安装完后页面报错。。。。尼玛,算了不用你了,警告警告吧!

补充

npm install @types/jquery --save-dev   // 添加这个是为了让typeScript认识$符号

npm install @types/bootstrap --save-dev   // 添加上bootstrap的申明

因为jquery跟bootstrap都是JavaScript库,而angular中需要的是typeScript库,执行以上两句会生成其对应的typeScript库,路径在:

@types下面会生成jquery以及bootstrap的类型定义文件,如果项目中不直接使用jquery的声明$,可以不去做类型定义声明,angular中尽量用ts的东西,避免使用JavaScript,或者尽量少用。

在这里我就不也添加类型定义声明了。后面实在用到了再加。

jquery跟bootstrap只是项目中遇到的两个基本的的js库,其实项目中用到的大部分是ts库,ts库添加的时候比js库要简单,后面用到的时候再做详细介绍。

、、、马上要下大暴雨了,准备下班回家。

猜你喜欢

转载自blog.csdn.net/u013589443/article/details/81165104