在标题中解释我尝试将Materialise集成到我的Angular 2项目中。
该项目是使用" AngularCli "
生成的我正在使用" Webpack "和" Scss "
我发现的tuto是不同的我不明白如何使用 scss :
My angular-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": { } } }
我在项目中添加了物化文件的项目:
答案 0 :(得分:11)
使用MaterialiseCSS框架的方法有很多种。
在安装之前要记住几件事
您可以使用以下方法的 任何 :
每个都有自己的优点和缺点。
只需将其添加到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>
将其添加为项目中的资产。这有助于在本地构建和运行时不依赖于Internet。
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>
在这个方法中,我们直接将文件包含在角度构建中。我假设为了简单起见,角度项目是使用@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";
上述所有安装方法都提供了实现的完整功能,并且无需进一步安装任何可以在角度中工作的内容。 举个例子,只需在角度组件的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
答案 1 :(得分:1)
如果您正在使用Angular CLI(我假设您的意思是说它使用的是Webpack和SCSS),那么为什么不将scss
目录移出src/assets/
目录并放入它只是src/
文件夹,因此您的位置为src/scss/
。资产通常是针对您的应用的非编译/处理资源,而不是您的SCSS的适当位置。
然后你可以改变
"styles": [
"assets/scss/main.scss"
],
到
"styles": [
"scss/main.scss"
],
当您运行cli时(ng serve
或ng build
,您的SCSS应该构建并与您的应用一起提供。
我假设您导入scss/
中main.scss
目录中的其他SCSS文件。否则,您可以将它们添加到styles
angular-cli.json
数组中