详解Angular-Cli中引用第三方库


Posted in Javascript onMay 21, 2017

最近在学习angular(AngularJS 2),根据教程使用angular-cli新建项目,然而在添加JQuery和Bootstrap第三方库时遇到了问题...

初试

我最初的想法是直接将相对路径写到index.html即可,如下:

<link rel="stylesheet" href="../node_modules/bootstrap/dist/css/bootstrap.min.css" rel="external nofollow" />
<script type="text/javascript" src="../node_modules/jquery/dist/jquery.min.js"/>
<script type="text/javascript" src="../node_modules/bootstrap/dist/js/bootstrap.min.js"/>

然鹅。。。并不好使,浏览器抓包会显示请求

 http://localhost:4200/node_modules/juqery/dist/jquery.min.js返回404错误,bootstrap也是相同的问题,这里显然是路径不正确,我的项目目录结构如下:

angular-form/
 |- src/
 | |- app/
 | |- index.html
 | ...
 |- node_modules
 | |- jquery/
 | |- bootstrap/
 | ...

其中,网站运行时的根目录是src目录,

所以获取不到与其处在同一目录的node_modules目录下文件也在情理之中...

另辟蹊径

经过乱七八糟的查找...发现了可以在/.angular-cli.json文件中配置脚本引用,

在其app.scripts下配置要添加的脚本, 并在app.styles下配置要添加的样式文件:

"app": [
 {
  ...
  "styles": [
   "node_modules/bootstrap/dist/css/bootstrap.min.css"
  ],
  "scripts": [
   "node_modules/bootstrap/dist/css/bootstrap.min.css",
   "node_modules/bootstrap/dist/css/bootstrap.min.css"
  ],
  ...
 }
]

再次启动网站,却连编译都无法通过...出现如下问题:

ERROR in multi script-loader!./src/~/jquery/dist/jquery.min.js script-loader!./src/~/bootstrap/dist/js/bootstrap.min.js
Module not found: Error: Can't resolve 'E:\Code\JavaScript\angular2\angular-forms\src\node_modules\jquery\dist\jquery.min.js' in 'E:\Code\JavaScript\angular2\angular-forms'
 @ multi script-loader!./src/~/jquery/dist/jquery.min.js script-loader!./src/~/bootstrap/dist/js/bootstrap.min.js

可以看出这里去加载js脚本时寻找的是src/目录下的node_modules目录, 所以加载失败。这意味着angular-cli.json文件中配置的路径时相对于网站根目录的路径, 接着做如下更改:

"app": [
 {
  ...
  "styles": [
   "../node_modules/bootstrap/dist/css/bootstrap.min.css"
  ],
  "scripts": [
   "../node_modules/bootstrap/dist/css/bootstrap.min.css",
   "../node_modules/bootstrap/dist/css/bootstrap.min.css"
  ],
  ...
 }
]

再次运行网站,成功加载~~~

回看来时路

后来了解到,angular-cli的项目使用webpack来将模块打包, 我们这里配置的scriptsstyles会被打包成scripts.bundle.js styles.bundle.js文件加载到前台页面,而后就可以正常使用这些第三方库了~~~

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
用js生产批量批处理执行命令
Jul 28 Javascript
Jquery+JSon 无刷新分页实现代码
Apr 01 Javascript
js自定义方法通过隐藏iframe实现文件下载
Feb 21 Javascript
jQuery中end()方法用法实例
Jan 08 Javascript
JavaScript如何动态创建table表格
Aug 02 Javascript
Google 地图控件集详解及实例代码
Aug 06 Javascript
详解AngularJS ng-class样式切换
Jun 27 Javascript
js实现多张图片延迟加载效果
Jul 17 Javascript
JS返回顶部实例代码
Aug 09 Javascript
arcgis for js栅格图层叠加(Raster Layer)问题
Nov 22 Javascript
Angular模版驱动表单的使用总结
May 05 Javascript
使用iView Upload 组件实现手动上传图片的示例代码
Oct 01 Javascript
Angular2安装angular-cli
May 21 #Javascript
Angular2使用Augury来调试Angular2程序
May 21 #Javascript
Angular2使用Angular-CLI快速搭建工程(二)
May 21 #Javascript
Angular2使用Angular CLI快速搭建工程(一)
May 21 #Javascript
jQuery获取单选按钮radio选中值与去除所有radio选中状态的方法
May 20 #jQuery
node.js 中间件express-session使用详解
May 20 #Javascript
JS 调试中常见的报错问题解决方法
May 20 #Javascript
You might like
JQuery的一些小应用收集
2010/03/27 Javascript
window.opener用法和用途实例介绍
2013/08/19 Javascript
JQuery判断HTML元素是否存在的两种解决方法
2013/12/26 Javascript
JavaScript实现的in_array函数
2014/08/27 Javascript
JavaScript bold方法入门实例(把指定文字显示为粗体)
2014/10/17 Javascript
javascript中checkbox使用方法实例演示
2015/11/19 Javascript
JavaScript模块化开发之SeaJS
2015/12/13 Javascript
javascript图片延迟加载实现方法及思路
2015/12/31 Javascript
js实现商品抛物线加入购物车特效
2020/11/18 Javascript
JS实现将Asp.Net的DateTime Json类型转换为标准时间的方法
2016/08/02 Javascript
js 发布订阅模式的实例讲解
2017/09/10 Javascript
BootstrapTable加载按钮功能实例代码详解
2017/09/22 Javascript
Vue2 SSR渲染根据不同页面修改 meta
2017/11/20 Javascript
详解JavaScript基础知识(JSON、Function对象、原型、引用类型)
2018/01/16 Javascript
微信小程序实现翻牌抽奖动画
2020/09/21 Javascript
Python中MYSQLdb出现乱码的解决方法
2014/10/11 Python
Django URL传递参数的方法总结
2016/08/28 Python
完美解决在oj中Python的循环输入问题
2018/06/25 Python
python操作kafka实践的示例代码
2019/06/19 Python
Django MEDIA的配置及用法详解
2019/07/25 Python
Python中__repr__和__str__区别详解
2019/11/07 Python
window环境pip切换国内源(pip安装异常缓慢的问题)
2019/12/31 Python
python接入支付宝的实例操作
2020/07/20 Python
Html5页面中的返回实现的方法
2018/02/26 HTML / CSS
浅析HTML5 Landmark
2020/09/11 HTML / CSS
美国知名的百货清仓店:Neiman Marcus Last Call
2016/08/03 全球购物
Chemist Warehouse中文网:澳洲连锁大药房
2021/02/05 全球购物
给领导的致歉信范文
2014/01/13 职场文书
2014年上半年工作自我评价
2014/01/18 职场文书
机械制造毕业生求职信
2014/03/03 职场文书
环保志愿者活动总结
2014/06/27 职场文书
乡镇精神文明建设汇报材料
2014/08/15 职场文书
成本会计岗位职责
2015/02/03 职场文书
教师年度考核自我评鉴
2015/08/11 职场文书
PHP连接MSSQL数据库案例,PHPWAMP多个PHP版本连接SQL Server数据库
2021/04/16 PHP
react合成事件与原生事件的相关理解
2021/05/13 Javascript