0

我正在使用https://shoelace.style(在我的 Svelte 项目中),并按照鞋带文档中的示例配置,我添加了一个copy()插件到我的rollup.config.js,将其复制到public/vendor/shoelace

export default {
  // SNIP
  plugins: [
    // SNIP
    copy({
      targets: [
        {
          src: path.resolve(
            __dirname,
            "node_modules/@shoelace-style/shoelace/dist/assets"
          ),
          dest: path.resolve(__dirname, "public/vendor/shoelace"),
        },
      ],
    }),
    // SNIP
  ],
};

它可以工作,但现在构建需要非常长的时间 - 超过 40 秒,包括文件更改时的增量重建。我相当确定时间损失不是因为它每次都被意外复制,因为资产文件夹只有 6M。

那么,我想正在进行一些摇树和/或优化?有没有办法从汇总处理中排除文件夹 - 或者无论如何对捆绑过程进行故障排除/分析?

(如有必要,我也可以发布其余的配置;但它是标准的新应用程序模板,通过npx degit sveltejs/template添加/删除复制插件获得所有不同。)

4

2 回答 2

0

我也将 svelte 与 codeigniter 一起使用,并且有一种更简单的方法来包含您的 css 框架:

  1. 列表项将样式表添加到视图(布局)标题,并将脚本添加到 svelte 脚本文件构建上方的页脚(如果您要在整个项目中使用鞋带)。
  2. <svelte:header></svelte:header>如果您只想定位一个页面,则添加两者(即使您也可以在加载视图以定位某些页面之前从控制器执行此操作)。
  3. 您可以通过安装添加它,npm i svelte-preprocess node-scss然后包含您的 css 框架的 scss 文件,然后只导入 js 文件(您也可以使用使用 scss 的全局样式表来做到这一点)。
于 2021-10-30T14:07:47.450 回答
0

这个问题原来是在rollup-plugin-copy. 即使设置copyOnce: true并没有改变行为,但设置它只在最后可能的机会复制 -closeBundle钩子解决了我的问题。

    copy({
      copyOnce: true, // ???
      hook: "closeBundle",
      targets: [
        {
          src: path.resolve(
            __dirname,
            "node_modules/@shoelace-style/shoelace/dist/assets"
          ),
          dest: path.resolve(__dirname, "public/vendor/shoelace"),
        },
      ],
    }),
于 2021-11-10T15:02:32.677 回答