首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >汇总:单个html输出

汇总:单个html输出
EN

Stack Overflow用户
提问于 2020-11-27 06:17:25
回答 1查看 1.6K关注 0票数 2

我正在尝试将我的Svelte应用程序打包到一个Html文件输出中。我成功地获得了基于这个答案的配置所需的输出:Output Single HTML File from Svelte Project

使用"npm“,第一个构建没有问题,但是我遇到了问题:bundle['bundle.css']没有填充我的inlineSveltegenerateBundle函数。

我没有设法更改rollup-plugin-css-only for rollup-plugin-embed-css,它似乎有一个适合我需要的名称。

这是我的rollup.config.js

代码语言:javascript
复制
import svelte from 'rollup-plugin-svelte';
import livereload from 'rollup-plugin-livereload';
import css from 'rollup-plugin-css-only';
...

function inlineSvelte(templatePath, dest) {
  return {
    name: 'Svelte Inliner',
    generateBundle(opts, bundle) {
      const file = path.parse(opts.file).base;
      const jsCode = bundle[file].code;
      const cssCode = bundle['bundle.css'].source;
      const template = fs.readFileSync(templatePath, 'utf-8');
      bundle[file].code = template
        .replace('%%script%%', jsCode)
        .replace('%%style%%', cssCode);
    }
  }
}

export default {
  input: 'src/main.js',
  output: {
    format: 'es',
    file: outputDir + 'index.html',
    name: 'app'
  },
  plugins: [
    svelte({
        compilerOptions: {
            dev: !production
        }
    }),
    css({ output: 'bundle.css' }),
    resolve({
        browser: true,
        dedupe: ['svelte']
    }),
    commonjs(),
    !production && livereload(outputDir),
    inlineSvelte('./src/template.html')
  ],
  watch: {
    clearScreen: false
  }
};
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-11-29 12:20:11

当然,在HTML中嵌入生成的CSS文件是可能的,至少可以使用一些相当简单的定制插件。

但是,如果您的Svelte组件中只有CSS,也就是说您的代码中没有import 'whatever.css',那么您可以依赖于从编译的JS代码中注入CSS并完成它。

这会降低一些性能,因为这种注入的CSS永远不会被浏览器缓存,但它避免了与自定义构建步骤相关联的额外复杂性/风险/耦合.这种性能在您希望所有应用程序都放在一个HTML文件中的场景中通常不那么重要。

要启用此功能,请在Svelte插件上设置emitCss: false

代码语言:javascript
复制
  plugins: [
    svelte({
      emitCss: false,
      ...
    }),
    ...
  ],
  ...

在这种情况下,您不需要任何CSS的汇总插件。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65032844

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档