我如何将 Materialize CSS 和 JavaScript 组件集成到 Svelte 中

How could I integrate Materialize CSS and JavaScript components into Svelte

我是 Svelte 的新手,我想用它构建我的下一个项目。

我想将 Materialize 用于 CSS 和 JavaScript 组件,但我找不到设置它并与 Svelte 集成的方法。

我该怎么做?

使用 yarn add -D materialize-css 安装 materialize-css 软件包。

库存 Svelte 模板 (https://github.com/sveltejs/template) 在 public/index.html

中有 2 CSS 个导入
<!-- base styles -->
<link rel='stylesheet' href='/global.css'>

<!-- styles that were defined in the components -->
<link rel='stylesheet' href='/build/bundle.css'>

让我们调整 CSS 的构建方式。我们将 global.cssmaterialize/dist/materialize.css 合并到一个文件中,而不是 global.css

有一个名为 rollup-plugin-css-only 的汇总插件可以做到这一点。

yarn add -D rollup-plugin-css-only

rollup.config.js 中,通过导入插件来配置插件 import css from 'rollup-plugin-css-only' 并将 css({output: "public/build/base.css"}) 添加到 plugins 的列表中。

现在我们可以在 src/main.js 中导入 .css 个文件:

import '../node_modules/materialize-css/dist/css/materialize.css'
import '../public/global.css'

// import js stuff too
import '../node_modules/materialize-css/dist/js/materialize'

....

// init material plugins
M.AutoInit()

不要忘记更新 public/index.html 以包含生成的 base.css 而不是 global.css:

- <link rel='stylesheet' href='/global.css'>
+ <link rel='stylesheet' href='/build/base.css'>

Demo

我用 Svelte + MaterializeCSS 和 SMUI 开发了这个模板 (Svelte Material UI) >> Svelte + MaterializeCSS + SMUI