首页 > 解决方案 > 如何将 svelte-preprocess 的结果发送到文件中

问题描述

是否可以(如果可以,如何)将svelte-preprocess运行结果保存到外部文件中?

我的动机:我已经使用 TypeScript 编写了一个 Svelte 组件——但是将svelte我的字段指向package.json原始(即 TypeScript)源会使非 TypeScript 精通的环境(例如 Svelte REPL)因语法错误而失败。

因此,我需要发布原始组件的转译版本 - 无需任何捆绑(允许 Svelte 优化其最终捆绑)

[编辑] 下面显示的接受的答案促使我编写一个 Svelte 预处理器,它实际上解决了上述问题。如果其他人遇到类似情况:看看保存到文件

标签: typescriptsvelte

解决方案


你可以自己创建一个预处理器,然后用生成的代码做你想做的事

确保在sveltePreprocess获取编译后的代码之后包含您的预处理器

plugins: [
    svelte({
      preprocess: [
        sveltePreprocess({sourceMap: !production}),
        {
          script: ({attributes, content, filename, markup}) => {
            console.log({content, filename});
          },
          markup: ({content, filename}) => {
            console.log({content, filename});
          },
          style: ({attributes, content, filename, markup}) => {
            console.log({content, filename});
          }
        }
      ],
    }),

您可以创建一种地图,并组装已编译的组件,因为您拥有脚本、标记和样式


推荐阅读