javascript - 运行时不生成苗条的 CSS 文件
问题描述
我正在按照本教程尝试创建一个苗条的前端。
我没有收到任何错误,但是当我运行时,npm run dev
我得到:
我应该看到在公共文件夹中创建的新 extra.css 文件。因此显示的页面没有任何 CSS,只是普通的 li 项目,而不是具有 materialize-css 属性。
我的文件:
rollup.config.js
import svelte from 'rollup-plugin-svelte';
import resolve from '@rollup/plugin-node-resolve';
import commonjs from '@rollup/plugin-commonjs';
import livereload from 'rollup-plugin-livereload';
import { terser } from 'rollup-plugin-terser';
import css from 'rollup-plugin-css-only';
const production = !process.env.ROLLUP_WATCH;
export default {
input: 'src/main.js',
output: {
sourcemap: true,
format: 'iife',
name: 'app',
file: 'public/build/bundle.js'
},
plugins: [
svelte({
// enable run-time checks when not in production
dev: !production,
// we'll extract any component CSS out into
// a separate file - better for performance
css: css => {
css.write('public/build/bundle.css');
}
}),
css({ output: 'public\extra.css'}),
...
...
index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset='utf-8'>
<meta name='viewport' content='width=device-width,initial-scale=1'>
<title>Svelte app</title>
<link rel='icon' type='image/png' href='/favicon.png'>
<link rel='stylesheet' href='extra.css'>
<link rel='stylesheet' href='global.css'>
<link rel='stylesheet' href='build/bundle.css'>
<script defer src='/build/bundle.js'></script>
</head>
<body>
</body>
</html>
App.svelte
<script>
import '..\node_modules\materialize-css\dist\css\materialize.min.css';
import '..\node_modules\materialize-css\dist\js\materialize.min.js';
import { Router, Route } from 'svelte-routing';
import Navbar from './layout/Navbar.svelte';
import Home from './pages/Home.svelte';
import About from './pages/About.svelte';
</script>
<style>
</style>
<Router>
<Navbar>
<div class="container">
<Route path="/" component={Home} />
<Route path="/about" component={About} />
</div>
</Navbar>
</Router>
Navbar.svelte
<script>
import { Link } from 'svelte-routing';
</script>
<nav>
<div class="nav-wrapper">
<Link to="/" class="brand-logo">svelte app</Link>
<ul id="nav-mobile" class="right hide-on-med-and-down">
<li>
<Link to="/">Home</Link>
</li>
<li>
<Link to="/about">About</Link>
</li>
</ul>
</div>
</nav>
而且我还在 SO 上找到了这个问题/答案,似乎说该教程还可以并且为人们工作,所以我很困惑。
解决方案
在按照教程进行操作时,我遇到了同样的问题。打了一会儿我的头后,我意识到public/build
它正在创建这个目录public/build/extra.css
,所以首先看看你的文件结构是否与我的相似(下图)
然后我所做的是在 中rollup.config.js
,我将输出public/build/extra.css
从 extra.css
...
svelte({
compilerOptions: {
// enable run-time checks when not in production
dev: !production,
// we'll extract any component CSS out into
// a separate file - better for performance
css: (css) => {
css.write('public/build/bundle.css');
}
}
}),
// we'll extract any component CSS out into
// a separate file - better for performance
css({ output: 'extra.css' }),
...
我希望这也能解决你的问题。
推荐阅读
- android - JSONObject 无法在 Volley 中转换为 JSONArray
- sql - Oracle REF 数据类型
- macos - 在 Mac OS 的终端或 iterm2 应用程序上显示泰卢固语
- javascript - 如何保持选择选项的值是动态的?
- python - 如何停用鼠标运动(
) 在我拖动无框窗口时在 Windows 任务栏上? - java - 使用 docx4j 将可见背景图片设置为 docx 文档
- vb.net - 以给定的时间间隔获取两个日期之间的所有时间
- blockchain - 通过 rpc 从 Remix 连接到本地区块链时出错
- java - 如何检查Java中的While条件中是否有任何线程(CompletableFuture)未完成?
- android - 在 Android 中使用 Gson 从通知数据中解析嵌套的 JSON 数组