详解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 相关文章推荐
JavaScript 格式字符串的应用
Mar 29 Javascript
js监听鼠标事件控制textarea输入字符串的个数
Sep 29 Javascript
JQuery包裹DOM节点的方法
Jun 11 Javascript
javascript创建函数的20种方式汇总
Jun 23 Javascript
JavaScript的jQuery库中ready方法的学习教程
Aug 14 Javascript
JavaScript中的原型prototype完全解析
May 10 Javascript
jQuery 获取页面li数组并删除不在数组中的key
Aug 02 Javascript
jQuery中ajax错误调试分析
Dec 01 Javascript
JS使用插件cryptojs进行加密解密数据实例
May 11 Javascript
解决vue 打包发布去#和页面空白的问题
Sep 04 Javascript
vue router 组件的高级应用实例代码
Apr 08 Javascript
vue + any-touch实现一个iscroll 实现拖拽和滑动动画效果
Apr 08 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的array_multisort()使用方法介绍
2012/05/16 PHP
PHP删除HTMl标签的实现代码
2013/06/30 PHP
PHP实现采集中国天气网未来7天天气
2014/10/15 PHP
php提取字符串中网站url地址的方法
2014/12/03 PHP
php银联网页支付实现方法
2015/03/04 PHP
非常有用的9个PHP代码片段
2016/04/06 PHP
php中array_unshift()修改数组key注意事项分析
2016/05/16 PHP
基于php中echo用逗号和用点号的区别详解
2018/01/23 PHP
Yii框架连表查询操作示例
2019/09/06 PHP
laravel框架路由分组,中间件,命名空间,子域名,路由前缀实例分析
2020/02/18 PHP
jQuery创建自己的插件(自定义插件)的方法
2010/06/10 Javascript
简单实现限制uploadify上传个数
2015/11/16 Javascript
全面了解构造函数继承关键apply call
2016/07/26 Javascript
Vue.js 表单校验插件
2016/08/14 Javascript
jQueryMobile之窗体长内容的缺陷与解决方法实例分析
2017/09/20 jQuery
jQuery实现获取动态添加的标签对象示例
2018/06/28 jQuery
vue实现的微信机器人聊天功能案例【附源码下载】
2019/02/18 Javascript
解决layui下拉框监听问题(监听不到值的变化)
2019/09/28 Javascript
Python向Excel中插入图片的简单实现方法
2018/04/24 Python
python写入数据到csv或xlsx文件的3种方法
2019/08/23 Python
pytorch程序异常后删除占用的显存操作
2020/01/13 Python
基于梯度爆炸的解决方法:clip gradient
2020/02/04 Python
解决pip安装tensorflow中出现的no module named tensorflow.python 问题方法
2021/02/20 Python
HTML5实现动画效果的方式汇总
2016/02/29 HTML / CSS
利用HTML5 Canvas制作键盘及鼠标动画的实例分享
2016/03/15 HTML / CSS
如何打印出当前源文件的文件名以及源文件的当前行号
2015/04/05 面试题
考试不及格的检讨书
2014/01/22 职场文书
2014年小学元旦活动方案
2014/02/12 职场文书
社团2014年植树节活动总结
2014/03/11 职场文书
幼儿园儿童节主持词
2014/03/21 职场文书
机电一体化专业求职信
2014/07/22 职场文书
学校感恩节活动策划方案
2014/10/06 职场文书
2015年幼儿园后勤工作总结
2015/04/25 职场文书
《黄道婆》教学反思
2016/02/22 职场文书
解决mysql问题:由于找不到MSVCR120.dll,无法继续执行代码
2021/06/26 MySQL
《模拟人生4》推出新补丁 “婚礼奇缘”DLC终于得到修复
2022/04/03 其他游戏