详解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 相关文章推荐
jQuery 锚点跳转滚动条平滑滚动一句话代码
Apr 30 Javascript
AJAX 网页保留浏览器前进后退等功能
Feb 12 Javascript
使用Javascript接收get传递的值的代码
Nov 30 Javascript
浅谈 jQuery 事件源码定位问题
Jun 18 Javascript
jQuery动态效果显示人物结构关系图的方法
May 07 Javascript
JS组件Bootstrap实现弹出框效果代码
Apr 26 Javascript
详解Node.js:events事件模块
Nov 24 Javascript
原生js实现下拉框功能(支持键盘事件)
Jan 13 Javascript
Bootstrap模态框案例解析
Mar 05 Javascript
微信小程序 下拉列表的实现实例代码
Mar 08 Javascript
vue移动端使用appClound拉起支付宝支付的实现方法
Nov 21 Javascript
JS代码实现页面切换效果
Jan 10 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
使用php判断服务器是否支持Gzip压缩功能
2013/09/24 PHP
PHP实现的浏览器检查类
2016/04/11 PHP
用js实现层随着内容大小动态渐变改变 推荐
2009/12/19 Javascript
使用javascipt---实现二分查找法
2013/04/10 Javascript
网页前端优化之滚动延时加载图片示例
2013/07/13 Javascript
Javascript实现Web颜色值转换
2015/02/05 Javascript
javascript实现倒计时跳转页面
2016/01/17 Javascript
jquery实现图片上传前本地预览
2017/04/28 jQuery
带你快速理解javascript中的事件模型
2017/08/14 Javascript
Vue自定义弹窗指令的实现代码
2018/08/13 Javascript
原生js实现商品筛选功能
2019/10/28 Javascript
js实现图片上传到服务器和回显
2020/01/19 Javascript
JQuery通过键盘控制键盘按下与松开触发事件
2020/08/07 jQuery
python bottle框架支持jquery ajax的RESTful风格的PUT和DELETE方法
2017/05/24 Python
python使用xlrd模块读取xlsx文件中的ip方法
2019/01/11 Python
python turtle库画一个方格和圆实例
2019/06/27 Python
使用python快速实现不同机器间文件夹共享方式
2019/12/22 Python
Python图像处理库PIL的ImageEnhance模块使用介绍
2020/02/26 Python
Python request操作步骤及代码实例
2020/04/13 Python
python 统计list中各个元素出现的次数的几种方法
2021/02/20 Python
Finishline官网:美国一家领先的运动品牌鞋类、服装零售商
2016/07/20 全球购物
Anya Hindmarch官网:奢侈设计师手袋及配饰
2018/11/15 全球购物
介绍一下Ruby的特点
2013/01/20 面试题
高中毕业自我鉴定范文
2013/10/02 职场文书
公司道歉信范文
2014/01/09 职场文书
如何编写优秀的食品项目创业计划书
2014/01/23 职场文书
自荐信需注意事项
2014/01/25 职场文书
黄继光的英雄事迹材料
2014/02/13 职场文书
安全生产网格化管理实施方案
2014/03/01 职场文书
课外活动总结范文
2014/07/09 职场文书
车辆委托书范本
2014/10/05 职场文书
廉政文化进校园广播稿
2014/10/20 职场文书
优秀小学生事迹材料
2014/12/26 职场文书
自主招生自荐信怎么写
2015/03/24 职场文书
Python Matplotlib绘制动画的代码详解
2022/05/30 Python
Apache SkyWalking 监控 MySQL Server 实战解析
2022/09/23 Servers