我们想在angular-cli 1.0.0-beta.5生成的应用程序中使用bootstrap 4 (4.0.0-alpha.2)(w/ node v6.1.0)。
在获得bootstrap及其对npm的依赖之后,我们的第一个方法是将它们添加到angular-cli-build.js中:
'bootstrap/dist/**/*.min.+(js|css)',
'jquery/dist/jquery.min.+(js|map)',
'tether/dist/**/*.min.+(js|css)',
然后导入到index。html中
<script src="vendor/jquery/dist/jquery.min.js"></script>
<script src="vendor/tether/dist/js/tether.min.js"></script>
<link rel="stylesheet" type="text/css" href="vendor/bootstrap/dist/css/bootstrap.min.css">
<script src="vendor/bootstrap/dist/js/bootstrap.min.js"></script>
这在ng serve中工作得很好,但当我们生成一个带有-prod标志的构建时,dist/vendor中的所有依赖项都消失了(惊讶!)
我们打算如何处理这样的场景(即加载引导脚本)在一个用angular-cli生成的项目?
我们有以下想法,但我们真的不知道该怎么做……
use a CDN ? but we would rather serve these files to guarantee that they will be available
copy dependencies to dist/vendor after our ng build -prod ? But that seems like something angular-cli should provide since it 'takes care' of the build part ?
adding jquery, bootstrap and tether in src/system-config.ts and somehow pull them into our bundle in main.ts ? But that seemed wrong considering that we are not going to explicitly use them in our application's code (unlike moment.js or something like lodash, for example).
重要更新:ng2-bootstrap现在被ngx-bootstrap取代
ngx-bootstrap同时支持Angular 3和Angular 4。
更新:1.0.0-beta。11-webpack或以上版本
首先,在终端中使用以下命令检查你的angular-cli版本:
ng -v
如果你的angular-cli版本大于1.0.0-beta。11-webpack,那么你应该按照这些步骤:
安装ngx-bootstrap和bootstrap:
NPM安装ngx-bootstrap——保存
这一行现在安装Bootstrap 3,但是将来可以安装Bootstrap 4。请记住,ngx-bootstrap支持这两个版本。
src / app / app.module开放。Ts和添加:
import {AlertModule} from 'ngx-bootstrap';
...
@NgModule ({
...
import: [AlertModule.forRoot(),…),
...
})
angular-cli开放。Json(对于angar6及以后的文件名称更改为angular. Json。Json),然后在styles数组中插入一个新条目:
“风格”:(
“styles”css,
“. . / node_modules /引导/ dist / css / bootstrap.min.css”
),
打开src/app/ app.ponent .html,添加:
<警报类型=“成功”> < /警报>你好
1.0.0-beta。10个或以下版本:
如果你的angular-cli版本是1.0.0-beta。10或以下,则可以使用以下步骤。
首先,进入项目目录并键入:
npm install ngx-bootstrap --save
然后,打开angular-cli-build.js并添加这一行:
vendorNpmFiles: [
...
'ngx-bootstrap/**/*.js',
...
]
现在,打开src/system-config。然后写:
const map:any = {
...
'ngx-bootstrap': 'vendor/ngx-bootstrap',
...
}
,:
const packages: any = {
'ngx-bootstrap': {
format: 'cjs',
defaultExtension: 'js',
main: 'ngx-bootstrap.js'
}
};
好消息!基本上,Bootstrap 5现在可以很容易地实现,甚至不需要jQuery。
从您的终端运行
npm install bootstrap@next --save
因此,Angular在你的app.module中使用webpack。Ts,只要加上:
import "bootstrap";
或者如果你想分别导入它们,可以这样做:
import { ModuleToBeImported } from 'bootstrap';
然后是你的风格。scss,添加:
@import '~bootstrap/scss/bootstrap';
基本上就是这样,但是要注意一些组件需要popper.js。
需要bootstrap js的组件
在这里你也会看到依赖于popper.js的组件,在编写本文时,它们是用于显示和定位的下拉菜单,以及用于显示和定位的工具提示和弹出窗口。
因此,要安装popper.js,只需运行:
npm install @popperjs/core
参考
对于bootstrap 4.5, angular 10
npm install bootstrap --save
更新你的风格。这样的SCSS带有bootstrap import语句。
$theme-colors: (
"primary": #b867c6,
"secondary": #f3e5f5,
"success": #388e3c,
"info": #00acc1,
"light": #f3e5f5,
"dark": #863895
);
@import "~bootstrap";
@import url('https://fonts.googleapis.com/css2?family=Raleway&display=swap');
body {
color: gray('800');
background-color: theme-color('light');
font-family: 'Raleway', sans-serif;
}
导入引导应该在变量覆盖之后。[这个例子还展示了如何放置自己的主题颜色。]
我猜上面的方法在发布后已经改变了,看看这个链接
https://github.com/valor-software/ng2-bootstrap/blob/development/docs/getting-started/ng-cli.md
启动项目
npm i -g angular-cli
ng new my-app
cd my-app
ng serve
npm install --save @ng-bootstrap/ng-bootstrap
安装ng-bootstrap和bootstrap
npm install ng2-bootstrap bootstrap --save
src / app / app.module开放。Ts和add
import { AlertModule } from 'ng2-bootstrap/ng2-bootstrap';
...
@NgModule({
...
imports: [AlertModule, ... ],
...
})
angular-cli开放。并在样式数组中插入一个新条目
"styles": [
"styles.css",
"../node_modules/bootstrap/dist/css/bootstrap.min.css"
],
打开src/app/app.component.html并通过添加测试所有工作
<alert type="success">hello</alert>