详解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.ajax 用户登录验证代码
Oct 29 Javascript
javascript的原生方法获取数组中的最大(最小)值
Dec 19 Javascript
js判断undefined类型,undefined,null, 的区别详细解析
Dec 16 Javascript
web前端开发JQuery常用实例代码片段(50个)
Aug 28 Javascript
逐一介绍Jquery data()、Jquery stop()、jquery delay()函数(详)
Nov 04 Javascript
Bootstrap页面布局基础知识全面解析
Jun 13 Javascript
React 子组件向父组件传值的方法
Jul 24 Javascript
JavaScript函数的特性与应用实践深入详解
Dec 30 Javascript
vue中监听返回键问题
Aug 28 Javascript
ES6 proxy和reflect的使用方法与应用实例分析
Feb 15 Javascript
详解CocosCreator项目结构机制
Apr 14 Javascript
JavaScript 中for/of,for/in 的详细介绍
Nov 17 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
Terran建筑一览
2020/03/14 星际争霸
PHP迭代器实现斐波纳契数列的函数
2013/11/12 PHP
php实现批量删除挂马文件及批量替换页面内容完整实例
2016/07/08 PHP
php将从数据库中获得的数据转换成json格式并输出的方法
2018/08/21 PHP
php高清晰度无损图片压缩功能的实现代码
2018/12/09 PHP
PDO::lastInsertId讲解
2019/01/29 PHP
php判断目录存在的简单方法
2019/09/26 PHP
浅析PHP反序列化中过滤函数使用不当导致的对象注入问题
2020/02/15 PHP
php字符串函数 str类常见用法示例
2020/05/15 PHP
javascript动画效果类封装代码
2007/08/28 Javascript
JavaScript的事件绑定(方便不支持js的时候)
2013/10/01 Javascript
jQuery中toggleClass()方法用法实例
2015/01/05 Javascript
js实现点击左右按钮轮播图片效果实例
2015/01/29 Javascript
JavaScript中创建字典对象(dictionary)实例
2015/03/31 Javascript
AngularJS基础 ng-hide 指令用法及示例代码
2016/08/01 Javascript
利用bootstrapValidator验证UEditor
2016/09/14 Javascript
通过Ajax使用FormData对象无刷新上传文件方法
2016/12/08 Javascript
详解Vue自定义过滤器的实现
2017/01/10 Javascript
浅谈js中的this问题
2017/08/31 Javascript
express如何使用session与cookie的方法
2018/01/30 Javascript
js实现内置计时器
2019/12/16 Javascript
[50:50]完美世界DOTA2联赛PWL S3 INK ICE vs DLG 第一场 12.20
2020/12/23 DOTA
关于Python作用域自学总结
2019/06/10 Python
pytorch 常用函数 max ,eq说明
2020/06/28 Python
使用placeholder属性设置input文本框的提示信息
2020/02/19 HTML / CSS
物流管理专业应届生求职信
2013/11/21 职场文书
初中化学教学反思
2014/01/23 职场文书
2014年应届大学生毕业自我鉴定
2014/01/31 职场文书
法律顾问服务方案
2014/05/15 职场文书
迎新生标语大全
2014/10/06 职场文书
2015年全国“爱牙日”宣传活动总结
2015/03/23 职场文书
高三毕业感言
2015/07/30 职场文书
外出学习心得体会范文
2016/01/18 职场文书
请学会珍惜眼前,因为人生没有下辈子!
2019/11/12 职场文书
Python中rapidjson参数校验实现
2021/07/25 Python
详解SQL的窗口函数
2022/04/21 Oracle