前端之家收集整理的这篇文章主要介绍了
使用webpack和SCSS在Angular2项目中集成物化,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
正如
标题中的解释,我正在尝试将Materialise集成到我的Angular 2项目中.
该项目由“AngularCli”生成
我正在使用“Webpack”和“Scss”
我找到的tuto都是不同的我不明白如何使用scss:
– Materialize website tuto
– Npm website
我的角度cli json:
{
"$schema": "./node_modules/@angular/cli/lib/config/schema.json","project": {
"name": "accident-chain-web-angular","ejected": true
},"apps": [
{
"root": "src","outDir": "dist","assets": [
"assets","favicon.ico"
],"index": "index.html","main": "main.ts","polyfills": "polyfills.ts","test": "test.ts","tsconfig": "tsconfig.app.json","testTsconfig": "tsconfig.spec.json","prefix": "app","styles": [
"assets/scss/main.scss"
],"scripts": [],"environmentSource": "environments/environment.ts","environments": {
"dev": "environments/environment.ts","preprod": "environments/environment.preprod.ts","prod": "environments/environment.prod.ts"
}
}
],"e2e": {
"protractor": {
"config": "./protractor.conf.js"
}
},"lint": [
{
"project": "src/tsconfig.app.json"
},{
"project": "src/tsconfig.spec.json"
},{
"project": "e2e/tsconfig.e2e.json"
}
],"test": {
"karma": {
"config": "./karma.conf.js"
}
},"defaults": {
"styleExt": "scss","component": {
}
}
}
我的项目在资产中添加了物化文件:
@H_
301_20@
有许多
方法可以使用MaterialiseCSS框架.
在安装之前要记住几件事
>它不仅仅是一个CSS框架,虽然它有CSS名称.我们也可以使用它的SCSS
>它不是为Angular构建的
>它是一个基于jquery构建的组件框架.虽然我们不应该在角度使用jquery(不建议),但我们仍然导入.
您可以使用以下任何方法:
> CDN
>资产
>包括角度(NPM)
每个都有自己的优点和缺点.
CDN
只需将其添加到index.html即可.
<!-- Compiled and minified CSS -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.98.2/css/materialize.min.css">
<!-- We need jquery first -->
<script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
<!-- Compiled and minified JavaScript -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.98.2/js/materialize.min.js"></script>
资产
将其添加为项目中的资产.这有助于在本地构建和运行时不依赖于互联网.
Download jQuery
Download CSS version
>提取它们
>在assets文件夹中复制materialize.min.css,jquery-3.2.1.min.js和materialize.min.js
>将它们添加到index.html
<link rel="stylesheet" href="./assets/materialize.min.css" >
<script src="./assets/jquery-3.2.1.min.js"></script>
<script src="./assets/materialize.min.js"></script>
包括角度(NPM)
在这个方法中,我们直接将文件包含在角度构建中.我假设角度项目是使用@ angular / cli构建的,以简化.
做
npm install materialize-css --save
npm install jquery --save
npm install url-loader --save
将以下内容添加到.angular-cli.json:
"styles": [
"styles.scss"
]
"scripts":[
"../node_modules/jquery/dist/jquery.js","../node_modules/materialize-css/dist/js/materialize.js"
]
在styles.scss里面,添加:
$roboto-font-path: "~materialize-css/dist/fonts/roboto/";
@import "~materialize-css/sass/materialize";
与Angular集成:
上述所有安装方法都提供了实现的全部功能,无需进一步安装任何角度工作.
举个例子,在角度组件的HTML部分中使用适当的HTML结构,你就可以了.
在某些情况下,您可能需要修改javascript,为此我们需要使用jQuery.而不是我们可以在angular2-materialize使用角度包装开发人员.我开发了一个使用角度和物化的完整功能站点,从来没有感觉到需要.
如果你仍然相信你需要它.您可以按如下方式安装:
>使用上述任何方式安装实现
>安装angular2-materialize
npm install angular2-materilize --save
添加角度app.module.ts
import { MaterializeModule } from "angular2-materialize";
@NgModule({
imports: [
//...
MaterializeModule,],//...
})
按照angular2-materialize主页中提供的其他示例进行操作