详解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 post提交数据乱码
Nov 05 Javascript
sogou地图API用法实例教程
Sep 11 Javascript
Node.js实现批量去除BOM文件头
Dec 20 Javascript
JS实现页面载入时随机显示图片效果
Sep 07 Javascript
JavaScript仿聊天室聊天记录
Dec 27 Javascript
jQuery.parseHTML() 函数详解
Jan 09 Javascript
zTree异步加载展开第一级节点的实现方法
Sep 05 Javascript
JS判断字符串是否为整数的方法--简单的正则判断
Jul 23 Javascript
bootstrap模态框关闭后清除模态框的数据方法
Aug 10 Javascript
vue 中引用gojs绘制E-R图的方法示例
Aug 24 Javascript
使用jquery Ajax实现上传附件功能
Oct 23 jQuery
vue input标签通用指令校验的实现
Nov 05 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实现密保卡功能实现代码&amp;lt;打包下载直接运行&amp;gt;
2011/10/09 PHP
PHP asXML()函数讲解
2019/02/03 PHP
php中关于换行的实例写法
2019/09/26 PHP
Gambit vs CL BO3 第三场 2.13
2021/03/10 DOTA
javascript里的条件判断
2007/02/27 Javascript
javascript html 静态页面传参数
2009/04/10 Javascript
鼠标经过的文本框textbox变色
2009/05/21 Javascript
jquery全选/全不选/反选另一种实现方法(配合原生js)
2013/04/07 Javascript
jquery通过a标签删除table中的一行的代码
2013/12/02 Javascript
js sort 二维数组排序的用法小结
2014/01/24 Javascript
js和jquery使按钮失效为不可用状态的方法
2014/01/26 Javascript
JS兼容浏览器的导出Excel(CSV)文件的方法
2014/05/03 Javascript
分享15个大家都熟知的jquery小技巧
2015/12/02 Javascript
使用JS实现图片展示瀑布流效果的实例代码
2016/09/12 Javascript
JS中this上下文对象使用方式
2016/10/09 Javascript
React Native如何消除启动时白屏的方法
2017/08/08 Javascript
详解vue-cli与webpack结合如何处理静态资源
2017/09/19 Javascript
vue项目中api接口管理总结
2018/04/20 Javascript
vue2.0 可折叠列表 v-for循环展示的实例
2018/09/07 Javascript
js实现导航跟随效果
2018/11/17 Javascript
python实现的登陆Discuz!论坛通用代码分享
2014/07/11 Python
python实现的系统实用log类实例
2015/06/30 Python
Django框架的中的setting.py文件说明详解
2018/10/15 Python
python datetime处理时间小结
2020/04/16 Python
Tory Burch德国官网:美国时尚生活品牌
2018/01/03 全球购物
十八大报告观后感
2014/01/28 职场文书
元旦晚会邀请函
2014/02/01 职场文书
食品业务员岗位职责
2014/03/18 职场文书
个人委托书怎么写
2014/04/04 职场文书
学雷锋树新风演讲稿
2014/05/10 职场文书
2015年招聘工作总结
2014/12/12 职场文书
2015年度招聘工作总结
2015/05/28 职场文书
医者仁心观后感
2015/06/17 职场文书
2016年感恩教师节校园广播稿
2015/12/18 职场文书
Golang Gob编码(gob包的使用详解)
2021/05/07 Golang
Shell中的单中括号和双中括号的用法详解
2022/12/24 Servers