详解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 相关文章推荐
js 加载并解析XML字符串的代码
Dec 13 Javascript
Wordpress ThickBox 添加“查看原图”效果代码
Dec 11 Javascript
解析Jquery中如何把一段html代码动态写入到DIV中(实例说明)
Jul 09 Javascript
以Python代码实例展示kNN算法的实际运用
Oct 26 Javascript
浅谈Javascript数据属性与访问器属性
Jul 26 Javascript
javascript验证手机号和实现星号(*)代替实例
Aug 16 Javascript
微信小程序 定义全局数据、函数复用、模版等详细介绍
Oct 27 Javascript
全面总结Javascript对数组对象的各种操作
Jan 22 Javascript
用JS实现简单的登录验证功能
Jul 28 Javascript
Vue中import from的来源及省略后缀与加载文件夹问题
Feb 09 Javascript
原生js实现碰撞检测
Mar 12 Javascript
解决vue单页面应用进入页面加载所有 js 的问题
Aug 12 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中$_FILES的使用方法及注意事项说明
2014/02/14 PHP
php快速排序原理与实现方法分析
2016/05/26 PHP
laravel开发环境homestead搭建过程详解
2020/07/03 PHP
javascript 全等号运算符使用说明
2010/05/31 Javascript
使用jQuery实现图片遮罩半透明坠落遮挡
2015/03/16 Javascript
使用ngView配合AngularJS应用实现动画效果的方法
2015/06/19 Javascript
javascript实现tab切换的四种方法
2015/11/05 Javascript
jquery if条件语句的写法
2016/05/19 Javascript
Angular路由简单学习
2016/12/26 Javascript
为你的微信小程序体积瘦身详解
2017/05/20 Javascript
JavaScript实现鼠标滚轮控制页面图片切换功能示例
2017/10/14 Javascript
安装vue-cli报错 -4058 的解决方法
2017/10/19 Javascript
20个最常见的jQuery面试问题及答案
2018/05/23 jQuery
微信小程序中使用ECharts 异步加载数据实现图表功能
2018/07/13 Javascript
[03:07]2015国际邀请赛选手档案EHOME.rOtK 是什么让他落泪?
2015/07/31 DOTA
Python爬虫框架Scrapy实例代码
2018/03/04 Python
python递归实现快速排序
2018/08/18 Python
python实现对输入的密文加密
2019/03/20 Python
在python里面运用多继承方法详解
2019/07/01 Python
PyCharm更改字体和界面样式的方法步骤
2019/09/27 Python
python多线程高级锁condition简单用法示例
2019/11/07 Python
安装pyinstaller遇到的各种问题(小结)
2020/11/20 Python
css3实现简单的白云飘动背景特效
2020/10/28 HTML / CSS
HTML5的表单(绝对特别强大的功能)使用示例
2013/06/20 HTML / CSS
GoPro摄像机美国官网:美国运动相机厂商
2018/07/03 全球购物
英国在线药房和在线医生:LloydsPharmacy
2019/10/21 全球购物
生物科学专业个人求职信范文
2013/12/07 职场文书
英文自我鉴定
2013/12/10 职场文书
十一国庆节“向国旗敬礼”主题班会活动方案
2014/09/27 职场文书
出纳试用期自我评价
2015/03/10 职场文书
退休职工欢送会致辞
2015/08/01 职场文书
2015年新教师个人工作总结
2015/10/14 职场文书
tensorflow中的梯度求解及梯度裁剪操作
2021/05/26 Python
使用Navicat Premium工具将oracle数据库迁移到MySQL
2021/05/27 Oracle
总结python多进程multiprocessing的相关知识
2021/06/29 Python
关于使用Redisson订阅数问题
2022/01/18 Redis