2

概述

我正在为一个朋友开发一个网站(多页),我决定使用 Google 的 Web 材料设计组件 (MDC) 作为其样式的基础。我希望它使用 Functions 和 Hosting 托管在 Firebase 上。

我已经研究了一个多星期,并且已经到了可以使用Node.jsExpressEJS呈现多个页面的地步,但我似乎无法理解 MDC 将如何发挥作用这种环境。


问题

你以前看过这个作品吗?如果是这样,它是如何完成的,我应该从哪里开始?


边注

我已经能够使用这个 quide让它在本地运行。这是使这项工作的主要文件:

webpack.config.js

module.exports = [{
entry: './app.scss',
output: {
    // This is necessary for webpack to compile
    // But we never use style-bundle.js
    filename: 'style-bundle.js',
},
module: {
    rules: [{
        test: /\.scss$/,
        use: [
            {
                loader: 'file-loader',
                options: {
                    name: 'bundle.css',
                },
            },
            { loader: 'extract-loader' },
            { loader: 'css-loader' },
            {
                loader: 'sass-loader',
                options: {
                    includePaths: ['./node_modules']
                }
            },
        ]
    }]
},
}];

索引.html

<html>
<head>
    <link rel="stylesheet" href="bundle.css">
</head>
<body>
    <button class="foo-button mdc-button">
        Button
    </button>
</body>
</html>

包.json

{
  "name": "functions",
  "description": "Cloud Functions for Firebase",
  "scripts": {
    "lint": "eslint .",
    "serve": "firebase serve --only functions",
    "shell": "firebase functions:shell",
    "start": "webpack-dev-server",
    "deploy": "firebase deploy --only functions",
    "logs": "firebase functions:log"
  },
  "dependencies": {
    "@material/button": "^0.36.0",
    "firebase-admin": "~5.12.1",
    "firebase-functions": "^1.0.3"
  },
  "devDependencies": {
    "css-loader": "^0.28.11",
    "eslint": "^4.12.0",
    "eslint-plugin-promise": "^3.6.0",
    "extract-loader": "^2.0.1",
    "file-loader": "^1.1.11",
    "node-sass": "^4.9.0",
    "sass-loader": "^7.0.3",
    "webpack": "^3.12.0",
    "webpack-dev-server": "^2.11.2"
  },
  "private": true
}

应用程序.scss

@import "@material/button/mdc-button";

.foo-button {
  @include mdc-button-ink-color(teal);
  @include mdc-states(teal);
}
4

1 回答 1

1

Firebase Slack 的一名成员能够为我指明正确的方向,因此我不再需要帮助。提供了他们建议的屏幕截图的链接。

山姆杰克逊的回应

基本上,我将使用 React 而不是普通的 Node.js。他们似乎为 React 开发了一个 MDC 版本,您可以在创建 React 项目时对其进行配置。

MDC 反应 GitHub

于 2018-06-18T13:44:45.347 回答