写js代码时遇到的错误

311 阅读1分钟

import declarations may only appear at top level of a module

只能在模块顶部导入声明。
错误情况: 当我在index.js里导入initShaders.js代码时,出现此错误。

initShaders.js
export default function initShaders(){......}

index.js
import initShaders from "./02.initShaders"

图片.png 解决办法
在html文件里加入:

图片.png
这时候报错:

图片.png 解决方法
将js文件后缀名修改为mjs,以区分ES6模块和传统的JS模块,浏览器会自动识别后缀名,将es6语法的js文件转换成支持的文件。
!!!通过open with live server,我的默认浏览器火狐可以成功运行这个程序,但是通过open with other browser 在edge和chrome上还不能成功运行,后来我将默认浏览器设置为chrome,用open with live server打开chrome浏览器就可以成功运行了,并且用open with other browser打开火狐也可以运行,至于edge是不是也要设置为默认浏览器我没有尝试过。

webgl贴图错误

贴图失败,显示黑色

图片.png 原因:图片的长和宽不是2的幂(1、2、4、8....256、512),比如100*501
解决办法:

gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_S,gl.CLAMP_TO_EDGE)//

gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_T,gl.CLAMP_TO_EDGE)//

或者是把图片换成大小为2的次幂大小的。