引入第三方样式库文件无效(bootstrap)
尝试解决方案一
使用了cnpm安装,node_modules目录下会生成下划线_开头的相应模块,以jquery,bootstrap开头的目录实际上是快捷方式,指向相应的下划线开头的目录下
在.angular-cli.json中的styles,scripts中分别填入:
"../node_modules/bootstrap/dist/css/bootstrap.css"
"../node_modules/jquery/dist/jquery.js"
"../node_modules/bootstrap/dist/js/bootstrap.js"
尝试解决方案二
不使用cnpm而使用npm安装,同时安装jquery,bootstrap的typescript的加载模块
npm install jquery --save
npm install bootstrap --save
npm install @types/jquery --save
npm install @types/bootstrap --save
这里的尝试没有效果,问题依旧存在
尽量用npm安装,cnpm安装感觉会出问题,以前没感觉到有问题,最近刚装的环境,感觉到有问题
最终解决
爬了两天的坑,终于被自己挖出来了,感觉也被自己蠢哭了
样式引入的路径是没有问题的,那为什么会出现bootstrap的部分样式会失效了,最终我还是去了bootstrap的官网,一脸懵逼
bootstrap的V4版本和V3版本的API是不一样的,引入方式也有所区别
V4版本还需要引入popper.js
npm install popper.js --save --registry=https://registry.npm.taobao.org
而npm install bootstrap
默认安装的是最新版本,当前是V4.0.0版本,所以你会发现panel等以前V3里面的样式不起作用了
总结
- 以后若想像以前一样使用bootstrap的经典样式,用npm安装模块的时候需要带上版本号
npm install bootstrap@3
- 还有能用npm安装尽量不要用cnpm安装模块,会有坑
- 有条件的可以使用代理下载
- 没有条件的可以用国内的源,如淘宝的镜像源
在angular中引入外部样式
- .angular-cli.json中配置
"styles": [
"styles.scss",
"assets/..."
],
"scripts": [
"../node_modules/..."
]
- 在style.scss中引入cdn样式
@import "~https://...";
- 在index.html中
<link rel="stylesheet" href="assets/xxx.css">
<script src="assets/xxx.js"></script>
创建ng项目时候,规定使用scss样式
ng new project_name --style=scss
angular/cli安装初的问题
ng new 应用时,install模块时会有个build node-sass操作,用的是pyhon2的语法
所以如果你没有装python2.x的环境,或者是python3.x的版本,是会编译报错的
因为python2.x与python3.x的版本的语法是不一样的
因此你需要安装python2.x的版本,如python-2.7.6
安装完之后,添加环境变量,命名为python2,指向你python的安装目录
找到刚刚报错的目录,命令行执行:
npm rebuild node-sass
然后继续npm i后续没有安装完的包模块
TS文件中如果需要使用依赖注入,需要使用@Injectable注解
我们使用的Component组件中可以直接在构造函数中使用依赖注入是因为,@Component注解中已经继承了injectable注解