导入 GLSL 文件抛出错误 - Vite 项目

Importing a GLSL file throws an error - Vite project

提问人:Lauenborg 提问时间:2/1/2023 最后编辑:Lauenborg 更新时间:11/16/2023 访问量:1023

问:

所以我目前正在玩三个.js并使用 vite 来设置文档。 我创建了一个单独的 fragment.glsl,因此我不必在着色器材料中编写代码。但是在控制台中,我收到以下错误:

Uncaught SyntaxError: Unexpected token '{' (at fragment.glsl?import:1:13)

fragment.glsl 文件如下所示:

void main() {
        gl_FragColor = vec4(1., 0., 0., 1.);
};

我尝试使用以下命令从我的 /shaders/ 文件夹导入文件:

import fragment from './shaders/fragment.glsl'

当我在着色器材质中使用它时,它希望它运行代码:

this.material = new THREE.ShaderMaterial({
            fragmentShader: fragment,
            uniforms: {
                progress: {
                    type: 'f',
                    value: 0,
                },
                side: THREE.DoubleSide,
            },
        })

但我得到的只是控制台中的错误。我似乎无法弄清楚我做错了什么。没想到导入文件会这么麻烦。有谁看到我做错了什么?

导入 语法错误 glsl vite 意外令牌

评论


答:

1赞 flppv 2/15/2023 #1

我遇到了同样的问题,并通过安装 vite-plugin-glsl 解决了它。它有一个简单的设置说明,安装后导入问题就解决了。

1赞 Aadil Khan 11/7/2023 #2

首先安装一个包:

npm i vite-plugin-glsl --save-dev

然后在以下方面做一些更改:vite.config.js

import glsl from 'vite-plugin-glsl';
import { defineConfig } from 'vite';

在顶部添加,然后在导出默认值中添加另一件事:vite.config.js

plugins: [ glsl() ]

然后在依赖项部分添加以下内容:package.json

"vite-plugin-glsl": "^1.1.2"

最后,你的工作完全完成了