详解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 相关文章推荐
cssQuery()的下载与使用方法
Jan 12 Javascript
ImageFlow可鼠标控制图片滚动
Jan 30 Javascript
浮动的div自适应居中显示的js代码
Dec 23 Javascript
页面图片浮动左右滑动效果的简单实现案例
Feb 10 Javascript
js加载读取内容及显示与隐藏div示例
Feb 13 Javascript
JS 实现列表与多选框选择附预览动画
Oct 29 Javascript
javascript面向对象快速入门实例
Jan 13 Javascript
BootStrap tooltip提示框使用小结
Oct 26 Javascript
jquery实现左右滑动式轮播图
Mar 02 Javascript
JS组件系列之MVVM组件 vue 30分钟搞定前端增删改查
Apr 28 Javascript
JS判断非空至少输入两个字符的简单实现方法
Jun 23 Javascript
js实现碰撞检测
Jan 29 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
关于Appserv无法打开localhost问题的解决方法
2009/10/16 PHP
discuz加密解密函数使用方法和中文注释
2014/01/21 PHP
php算法实例分享
2015/07/14 PHP
yii的入口文件index.php中为什么会有这两句
2016/08/04 PHP
PHP操作Redis常用命令的实例详解
2020/12/23 PHP
jQuery select控制插件
2009/08/17 Javascript
基于jquery实现的服务器验证控件的启用和禁用代码
2010/04/27 Javascript
js中使用DOM复制(克隆)指定节点名数据到新的XML文件中的代码
2011/07/27 Javascript
使用JavaScript链式编程实现模拟Jquery函数
2014/12/21 Javascript
jQuery中append()方法用法实例
2014/12/25 Javascript
谷歌浏览器调试JavaScript小技巧
2014/12/29 Javascript
WEB前端开发都应知道的jquery小技巧及jquery三个简写
2015/11/15 Javascript
JavaScript中的操作符类型转换示例总结
2016/05/30 Javascript
jQuery实现输入框邮箱内容自动补全与上下翻动显示效果【附demo源码下载】
2016/09/20 Javascript
React Native 集成jpush-react-native的示例代码
2017/08/16 Javascript
完美解决手机网页中输入框被输入法遮挡的问题
2017/12/19 Javascript
jQuery中图片展示插件highslide.js的简单dom
2018/04/22 jQuery
浅谈Vue组件及组件的注册方法
2018/08/24 Javascript
webpack4+express+mongodb+vue实现增删改查的示例
2018/11/08 Javascript
Windows下Anaconda2安装NLTK教程
2018/09/19 Python
Python爬虫学习之获取指定网页源码
2019/07/30 Python
Python values()与itervalues()的用法详解
2019/11/27 Python
Python sys模块常用方法解析
2020/02/20 Python
Pycharm生成可执行文件.exe的实现方法
2020/06/02 Python
中粮集团旗下食品网上购物网站:我买网
2016/09/22 全球购物
美国宠物商店:Wag.com
2016/10/25 全球购物
全球第二大家装零售商:Lowe’s
2018/01/13 全球购物
PHP如何删除一个Cookie值
2012/11/15 面试题
团员学习总结的自我评价范文
2013/10/14 职场文书
服装厂厂长岗位职责
2013/12/27 职场文书
会计专业毕业自荐书范文
2014/02/08 职场文书
《水乡歌》教学反思
2014/04/24 职场文书
2015年妇委会工作总结
2015/05/22 职场文书
创业计划书之酒店
2019/08/30 职场文书
mysql5.7使用binlog 恢复数据的方法
2021/06/03 MySQL
SpringBoot详解执行过程
2022/07/15 Java/Android