使用typescript开发,使用webpack打包,项目中要用到shader。如何把shader代码放到独立的文件中,打包时打包进去。
使用ts-shader-loader,首先安装ts-shader-loader,然后在webpack的打包配置文件中配置:
module: {
rules: [
{
test: /\.ts$/,
use: 'ts-loader',
exclude: /node_modules/
},
{
test: /\.(glsl|vs|fs)$/,
loader: 'ts-shader-loader',
exclude: /node_modules/
}
],
},再声明接口:
declare module '*.glsl' {
const value: string;
export default value;
}然后就可以import了:
import electroVertex from "./glsl/electroVertex.glsl"; import electroFragment from "./glsl/electroFragment.glsl";
还有一个小问题,打包之后的shader代码没有压缩。
compress-shader-loader可以压缩,但是有bug。
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。