使用 SvelteKit 代码库运行独立脚本和长时间运行的应用程序

问题描述 投票:0回答:1

我有一个 SvelteKit 项目,想从命令行运行一些维护脚本。我知道如何使用节点运行脚本。维护脚本将引用 SvelteKit 的

$lib
文件夹中的模块,然后导入其他模块和
$env

如何以 SvelteKit 框架特定功能导入(如 $lib 和 $env)在脚本代码中可用的方式运行脚本?

例如

node src/scripts/myscript.js   # How can import $lib here
  • SvelteKit 如何设置其框架特定模块和导入?
  • 其中哪些可以在命令行应用程序中使用?当然有些像导航器是无法提供的。
svelte sveltekit
1个回答
0
投票

我会这样进行:

1 将脚本放在 src/scripts 等目录中。例如,src/scripts/myscript.js。

2

npm install --save-dev esbuild vite

3

import { defineConfig } from 'vite';
import { sveltekit } from '@sveltejs/kit/vite';

export default defineConfig({
  plugins: [sveltekit()],
  build: {
    outDir: './out',
    rollupOptions: {
      input: './src/scripts/myscript.js'
    }
  }
});

4 此配置可确保 Vite 使用 SvelteKit 插件来解析模块路径和其他配置,就像在 SvelteKit 应用程序中一样。

c.如有必要,修改您的脚本以使用异步导入: 根据您从 $lib 或其他 SvelteKit 托管目录导入的内容,您可能需要调整导入的处理方式:

5

// Example using dynamic import
(async () => {
  const { myFunction } = await import('$lib/myLibModule');
  myFunction();
})();

6 在package.json中添加脚本: 在 package.json 中添加命令以通过 Vite 运行脚本:

"scripts": {
  "run-script": "vite build --config vite.config.script.js && node ./out/myscript.js"
}

7

npm run run-script

此设置可确保您的 Node.js 脚本可以使用所有 SvelteKit 特定的别名和功能,除了那些严格特定于浏览器的别名和功能(例如导航器或 DOM API)。

限制和注意事项: 环境变量:确保执行脚本时,$env 使用的环境变量在 Node.js 运行时环境中可用。 浏览器特定的 API:显然,依赖于浏览器上下文的 API 在此设置中不起作用,应该被模拟或避免。

© www.soinside.com 2019 - 2024. All rights reserved.