详解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中定义对象类别
Dec 22 Javascript
javascript 密码强弱度检测万能插件
Feb 25 Javascript
javascript深入理解js闭包
Jul 03 Javascript
JS 退出系统并跳转到登录界面的实现代码
Jun 29 Javascript
Javascript delete 引用类型对象
Nov 01 Javascript
raphael.js绘制中国地图 地图绘制方法
Feb 12 Javascript
javascript日期计算实例分析
Jun 29 Javascript
Vue获取DOM元素样式和样式更改示例
Mar 07 Javascript
Angularjs实现下拉框联动的示例代码
Aug 22 Javascript
vue综合组件间的通信详解
Nov 06 Javascript
详解JavaScript 异步编程
Jul 13 Javascript
vue-router为激活的路由设置样式操作
Jul 18 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生成随机数或者字符串的代码
2008/09/05 PHP
php在服务器执行exec命令失败的解决方法
2012/03/03 PHP
ThinkPHP使用UTFWry地址库进行IP定位实例
2014/04/01 PHP
WordPress中用于获取文章作者与分类信息的方法整理
2015/12/17 PHP
thinkphp框架类库扩展操作示例
2019/11/26 PHP
通过Jquery遍历Json的两种数据结构的实现代码
2011/01/19 Javascript
Jqyery中同等与js中windows.onload的应用
2011/05/10 Javascript
NodeJS的模块写法入门(实例代码)
2012/03/07 NodeJs
JS数学函数Exp使用说明
2012/08/09 Javascript
jQuery中after的两种用法实例
2013/07/03 Javascript
js实现文本框中焦点在最后位置
2014/03/04 Javascript
node.js中的fs.appendFileSync方法使用说明
2014/12/17 Javascript
JavaScript原型及原型链终极详解
2016/01/04 Javascript
JavaScript实现隐藏省略文字效果的方法
2017/04/27 Javascript
Node.js dgram模块实现UDP通信示例代码
2017/09/26 Javascript
详解node.js 下载图片的 2 种方式
2018/03/02 Javascript
vue.js使用watch监听路由变化的方法
2018/07/08 Javascript
js隐式转换的知识实例讲解
2018/09/28 Javascript
详解Vue组件之作用域插槽
2018/11/22 Javascript
Python实现获取域名所用服务器的真实IP
2015/10/25 Python
对Python中type打开文件的方式介绍
2018/04/28 Python
Python基于聚类算法实现密度聚类(DBSCAN)计算【测试可用】
2018/12/26 Python
在python中,使用scatter绘制散点图的实例
2019/07/03 Python
Python读取JSON数据操作实例解析
2020/05/18 Python
python3的pip路径在哪
2020/06/23 Python
python爬取网易云音乐热歌榜实例代码
2020/08/07 Python
MoviePy常用剪辑类及Python视频剪辑自动化
2020/12/18 Python
css3编写浏览器背景渐变背景色的方法
2018/03/05 HTML / CSS
公司会计主管岗位责任制
2014/03/01 职场文书
最常使用的求职信
2014/05/25 职场文书
医学专业毕业生推荐信
2014/07/12 职场文书
2015年加油站站长工作总结
2015/05/27 职场文书
2016入党培训心得体会范文
2016/01/08 职场文书
投资入股协议书
2016/03/22 职场文书
MySQL窗口函数的具体使用
2021/11/17 MySQL
SONY600GR,国产收音机厂商永远的痛
2022/04/05 无线电