详解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 回车事件enter使用示例
Feb 18 Javascript
JS中使用Array函数shift和pop创建可忽略参数的例子
May 28 Javascript
JS获取图片lowsrc属性的方法
Apr 01 Javascript
jQuery过滤HTML标签并高亮显示关键字的方法
Aug 07 Javascript
使用Javascript实现选择下拉菜单互移并排序
Feb 23 Javascript
深入浅析JSON.parse()、JSON.stringify()和eval()的作用详解
Apr 03 Javascript
AngularJs Managing Service Dependencies详解
Sep 02 Javascript
微信小程序本地缓存数据增删改查实例详解
May 24 Javascript
JS鼠标3次点击事件实现代码及扩展思路
Sep 12 Javascript
Vue中使用vee-validate表单验证的方法
May 09 Javascript
微信小程序实现两边小中间大的轮播效果的示例代码
Dec 07 Javascript
JavaScript函数式编程(Functional Programming)箭头函数(Arrow functions)用法分析
May 22 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
超级简单的发送邮件程序
2006/10/09 PHP
PHP文本操作类
2006/11/25 PHP
PHP的PDO常用类库实例分析
2016/04/07 PHP
PHP7扩展开发之基于函数方式使用lib库的方法详解
2018/01/15 PHP
JavaScript 学习笔记(七)字符串的连接
2009/12/31 Javascript
基于Jquery 解决Ajax请求的页面 浏览器后退前进功能,页面刷新功能实效问题
2010/12/11 Javascript
js的压缩及jquery压缩探讨(提高页面加载性能/保护劳动成果)
2013/01/29 Javascript
iframe父页面获取子页面参数的方法
2014/02/21 Javascript
Bootstrap响应式侧边栏改进版
2016/09/17 Javascript
JavaScript如何实现图片懒加载(lazyload) 提高用户体验(增强版)
2016/11/30 Javascript
通过学习bootstrop导航条学会修改bootstrop颜色基调
2017/06/11 Javascript
基于JavaScript实现微信抢红包功能
2017/07/20 Javascript
微信小程序数字滚动插件使用详解
2018/02/02 Javascript
Vue+axios实现统一接口管理的方法
2018/07/23 Javascript
Vue中对拿到的数据进行A-Z排序的实例
2018/09/25 Javascript
JavaScript显式数据类型转换详解
2019/03/18 Javascript
JS将时间秒转换成天小时分钟秒的字符串
2019/07/10 Javascript
用python写asp详细讲解
2013/12/16 Python
在Mac OS上部署Nginx和FastCGI以及Flask框架的教程
2015/05/02 Python
python用模块zlib压缩与解压字符串和文件的方法
2016/12/16 Python
Python之Class&amp;Object用法详解
2019/12/25 Python
python的setattr函数实例用法
2020/12/16 Python
python 统计list中各个元素出现的次数的几种方法
2021/02/20 Python
优纳科技软件测试面试题
2012/05/15 面试题
爱国主义演讲稿
2014/05/07 职场文书
跳蚤市场口号
2014/06/13 职场文书
搞笑车尾标语
2014/06/23 职场文书
红领巾广播站广播稿(3篇)
2014/09/20 职场文书
个人对照检查材料思想汇报
2014/09/26 职场文书
员工辞职信范文
2015/03/02 职场文书
2015个人年度工作总结范文
2015/05/28 职场文书
工作年限证明模板
2015/06/15 职场文书
2016高三毕业赠言寄语
2015/12/04 职场文书
《中国机长》观后感:敬畏生命,敬畏职责
2019/11/12 职场文书
Python语言内置数据类型
2022/02/24 Python
详解Anyscript开发指南绕过typescript类型检查
2022/09/23 Javascript