使用 esbuild 在 Typescript 文件中加载 .wglsl 文件的方法?
我使用 esbuild 作为捆绑 Typescript 代码的工具,但我找不到为“.wgsl”文件配置加载器的方法。
Mi app.ts 文件:
import shader from './shader.wgsl';
//webgpu logic
我的shader.d.ts:
declare module '*.wgsl'{
const value: string;
export default value;
}
我的 esbuild 文件(如您所见,我无法使用 ts-shader-loader):
import { build } from "esbuild";
import * as ShaderLoader from "ts-shader-loader";
build({
entryPoints: ['./src/app.ts'],
bundle: true,
sourcemap : true,
target : 'es2015',
format:'esm',
minify : true,
outfile: './dist/js/app.js',
tsconfig: './tsconfig.json'
plugins: [ShaderLoader]
}).catch(() => process.exit(1));
I'm using esbuild as a tool to bundle my Typescript code but i can't find a way to configure a loader for ".wgsl" files.
Mi app.ts file :
import shader from './shader.wgsl';
//webgpu logic
My shader.d.ts :
declare module '*.wgsl'{
const value: string;
export default value;
}
My esbuild file (as you can see i can't use ts-shader-loader):
import { build } from "esbuild";
import * as ShaderLoader from "ts-shader-loader";
build({
entryPoints: ['./src/app.ts'],
bundle: true,
sourcemap : true,
target : 'es2015',
format:'esm',
minify : true,
outfile: './dist/js/app.js',
tsconfig: './tsconfig.json'
plugins: [ShaderLoader]
}).catch(() => process.exit(1));
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我们使用 Vite 导入 WGSL 和其他资产。
例如,通过在路径中添加“?raw”,Vite 将为您完成这项工作。
Vite 还可以通过简单的方式导入 wasm、worker、url,您可以查看: https://vitejs.dev/guide/assets.html#importing-asset-as-url
我们还基于Vite建立了一个项目,为WebGPU的新人分享基础示例
https://github.com/Orillusion/orillusion-webgpu-samples
欢迎更多演示
We use Vite to import WGSL and other assets.
e.g. by adding '?raw' in the path, Vite will do the job for you.
Vite could also import wasm, worker, url in a simple way, you can check: https://vitejs.dev/guide/assets.html#importing-asset-as-url
We also set up a project based on Vite to share basic samples for new comers of WebGPU
https://github.com/Orillusion/orillusion-webgpu-samples
More demos are welcome
你想要像 esbuild-plugin-glsl (这是一个 GLSL 导入插件 < em>esbuild,而
ts-shader-loader
是 webpack 的导入插件)。You want something like esbuild-plugin-glsl (which is a GLSL import plugin for esbuild, whereas
ts-shader-loader
is an import plugin for webpack).我必须向 esbuild-plugin-glsl 做出贡献,以允许其他用户加载 . .wgsl 文件。这是我的 esbuild 文件。使用版本 1.1.0^
d.ts 文件应该有这样的:
导入着色器的方法是:
I had to contribute to esbuild-plugin-glsl to allow other users to load a .wgsl file. Here's my esbuild file. Use the version 1.1.0^
the d.ts file should have this :
the way to import a shader is :