如何从 svelte-kit build 中排除文件?

How do I exclude files from svelte-kit build?

如果我 运行 npm run build 使用 SvelteKit,它似乎包含 src 文件夹中的所有文件。是否可以排除某种文件类型(例如 *test.js)?

例子

  1. Select 演示应用 npm init svelte@next my-app

  2. 将以下代码添加到src/routes/todos/foo.test.js

    describe('foo', () => {
      it('temp', () => {
        expect(true).toBe(false)
      })
    })
    
  3. npm run build

  4. npm run preview

结果:describe is not defined

解决方法

将测试移到 src

之外

SvelteKit 1.0.0 支持 routes configuration,可以从 src/routes 目录中排除文件。配置值是一个接收文件路径作为参数的函数,returns true 将文件用作路由。

例如,以下 routes 配置从路由中排除 *.test.js 个文件:

// sveltekit.config.js
⋮
const config = {
  kit: {
    ⋮
    routes: filepath => {
      return ![
        // exclude *test.js files
        /\.test\.js$/,

        // original default config
        /(?:(?:^_|\/_)|(?:^\.|\/\.)(?!well-known))/,
      ].some(regex => regex.test(filepath))
    },
  },
}

demo