详解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 相关文章推荐
DWR Ext 加载数据
Mar 22 Javascript
toString()一个会自动调用的方法
Feb 08 Javascript
关于JavaScript中原型继承中的一点思考
Jul 25 Javascript
点弹代码 点击页面任何位置都可以弹出页面效果代码
Sep 17 Javascript
Array 重排序方法和操作方法的简单实例
Jan 24 Javascript
Node.js实现在目录中查找某个字符串及所在文件
Sep 03 Javascript
javascript等号运算符使用详解
Apr 16 Javascript
仿百度换肤功能的简单实例代码
Jul 11 Javascript
Angular实现跨域(搜索框的下拉列表)
Feb 16 Javascript
原生JS中slice()方法和splice()区别
Mar 06 Javascript
vue之浏览器存储方法封装实例
Mar 15 Javascript
json前后端数据交互相关代码
Sep 19 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将图片保存为不同尺寸图片的图片类实例
2015/03/30 PHP
php页面,mysql数据库转utf-8乱码,utf-8编码问题总结
2015/08/27 PHP
功能强大的php文件上传类
2016/08/29 PHP
Symfony2获取web目录绝对路径、相对路径、网址的方法
2016/11/14 PHP
PHP 数组黑名单/白名单实例代码详解
2019/06/04 PHP
JQuery操作Select的Options的Bug(IE8兼容性视图模式)
2013/04/21 Javascript
jQuery中验证表单提交方式及序列化表单内容的实现
2014/01/06 Javascript
AngularJS中的过滤器使用详解
2015/06/16 Javascript
浅谈javascript中关于日期和时间的基础知识
2016/07/13 Javascript
jQuery Validate插件实现表单验证
2016/08/19 Javascript
bootstrap下拉列表与输入框组结合的样式调整
2016/10/08 Javascript
js实现常见的工具条效果
2017/03/02 Javascript
vuejs项目打包之后的首屏加载优化及打包之后出现的问题
2018/04/01 Javascript
layer弹出框确定前验证:弹出消息框的方法(弹出两个layer)
2019/09/21 Javascript
uni-app 支持多端第三方地图定位的方法
2020/01/03 Javascript
Vue数字输入框组件使用方法详解
2020/02/10 Javascript
Element Alert警告的具体使用方法
2020/07/27 Javascript
如何将Node.js中的回调转换为Promise
2020/11/10 Javascript
一些Python中的二维数组的操作方法
2015/05/02 Python
Python图像处理之直线和曲线的拟合与绘制【curve_fit()应用】
2018/12/26 Python
用Python画小女孩放风筝的示例
2019/11/23 Python
改变 Python 中线程执行顺序的方法
2020/09/24 Python
Exoticca英国:以最优惠的价格提供豪华异国情调旅行
2018/10/18 全球购物
纽约和芝加哥当天送花:Ode à la Rose
2019/07/05 全球购物
linux面试题参考答案(10)
2013/11/04 面试题
教师学习培训邀请函
2014/02/04 职场文书
宿舍违规用电检讨书
2014/02/16 职场文书
政府门卫岗位职责
2014/04/29 职场文书
校园元旦活动总结
2014/07/09 职场文书
党支部活动策划方案
2014/08/18 职场文书
六五普法宣传标语
2014/10/06 职场文书
幼儿园国庆节活动总结
2015/03/23 职场文书
学雷锋团日活动总结
2015/05/06 职场文书
2016廉政教育学习心得体会
2016/01/25 职场文书
你喜欢篮球吗?Python实现篮球游戏
2021/06/11 Python
Selenium浏览器自动化如何上传文件
2022/04/06 Python