使用 webcomponents 和 @sveltejs/adapter-static@next 时 npm 运行 build 失败

npm run build fails when using webcomponents and @sveltejs/adapter-static@next

我正在尝试使用 shoelace webcomponents 构建一个测试应用程序,但是当我执行 npm run build 命令时它失败了。此代码目前在使用 npm run dev 时有效,并且已经使用其他 Web 组件库(如 ui5-webcomponents)进行了测试,在这两种情况下命令都失败了。

我的代码如下:

<script>
    import { onMount } from 'svelte';
    import "@shoelace-style/shoelace/dist/themes/base.css";
    onMount(async () => {
        await import('@shoelace-style/shoelace/dist/components/button/button');
    });
</script>

<sl-button>Test</sl-button>

我得到的错误是:

> npm run build

> ~TODO~@0.0.1 build /home/jorge/Code/xprmnt/svelte-shoelace-config
> svelte-kit build

vite v2.3.3 building for production...
✓ 28 modules transformed.
.svelte-kit/output/client/_app/manifest.json                            1.77kb
.svelte-kit/output/client/_app/pages/index.svelte-464950c5.js           0.53kb / brotli: 0.33kb
.svelte-kit/output/client/_app/layout.svelte-904f1151.js                0.49kb / brotli: 0.29kb
.svelte-kit/output/client/_app/error.svelte-ec464882.js                 1.19kb / brotli: 0.57kb
.svelte-kit/output/client/_app/chunks/preload-helper-9f12a5fd.js        0.61kb / brotli: 0.31kb
.svelte-kit/output/client/_app/assets/start-a8cd1609.css                0.16kb / brotli: 0.10kb
.svelte-kit/output/client/_app/chunks/vendor-43cd886a.js                5.05kb / brotli: 1.98kb
.svelte-kit/output/client/_app/assets/pages/index.svelte-a2c9796c.css   7.29kb / brotli: 1.43kb
.svelte-kit/output/client/_app/start-2c597637.js                        16.71kb / brotli: 5.32kb
.svelte-kit/output/client/_app/chunks/button-4ff57d8f.js                33.65kb / brotli: 8.11kb
vite v2.3.3 building SSR bundle for production...
✓ 23 modules transformed.
.svelte-kit/output/server/app.js   62.07kb

Run npm run preview to preview your production build locally.

> Using @sveltejs/adapter-static
> document is not defined
ReferenceError: document is not defined
    at file:///home/jorge/Code/xprmnt/svelte-shoelace-config/.svelte-kit/output/server/app.js:249:9
    at ModuleJob.run (internal/modules/esm/module_job.js:152:23)
    at async Loader.import (internal/modules/esm/loader.js:177:24)
    at async prerender (file:///home/jorge/Code/xprmnt/svelte-shoelace-config/node_modules/@sveltejs/kit/dist/chunks/index5.js:79:14)
    at async Object.prerender (file:///home/jorge/Code/xprmnt/svelte-shoelace-config/node_modules/@sveltejs/kit/dist/chunks/index5.js:296:5)
    at async adapt (file:///home/jorge/Code/xprmnt/svelte-shoelace-config/node_modules/@sveltejs/adapter-static/index.js:17:4)
    at async adapt (file:///home/jorge/Code/xprmnt/svelte-shoelace-config/node_modules/@sveltejs/kit/dist/chunks/index5.js:322:2)
    at async file:///home/jorge/Code/xprmnt/svelte-shoelace-config/node_modules/@sveltejs/kit/dist/cli.js:616:5
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! ~TODO~@0.0.1 build: `svelte-kit build`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the ~TODO~@0.0.1 build script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/jorge/.npm/_logs/2021-05-24T17_08_03_058Z-debug.log

我还使用现有代码创建了 a small repo。我该如何解决这个错误?

您只需将网络组件库移动到 package.json 内的 devDependencies 即可解决此问题。这样做应该可以正常工作。