vite vue3 @无效的问题?

对@进行了设置,没问题呀,怎么还是提示不存在?

arr.map(item=>{
    //纹理加载
    let texture=new THREE.TextureLoader().load("@/assets/room/"+item+'.png')
    // 创建材质
    boxMaterial.push(new THREE.MeshBasicMaterial({map:texture}))
  })

image.png
image.png
image.png

tsconfig.json

{
  "extends": "@vue/tsconfig/tsconfig.web.json",
  "include": ["env.d.ts", "src/**/*", "src/**/*.vue"],
  "compilerOptions": {
    "baseUrl": ".",
    "paths": {
      "@/*": ["./src/*"]
    }
  },

  "references": [
    {
      "path": "./tsconfig.config.json"
    }
  ]
}
阅读 3.5k
3 个回答

vite默认是不支持@的
需要单独配置:
在vite.config.js中配置

import { resolve } from "path"

export default defineConfig({
  plugins: [vue()],
  // 配置根路径
  resolve: {
    // ↓路径别名,主要是这部分
    alias: {
      "@": resolve(__dirname, "./src")
    }
  }
})

如果在ts中使用可能会报错:

解决方案:npm install --save-dev @types/node

在使用别名(Alias)之后,需要在 tsconfig.json 中进行相应的配置

你加载图片是threejs的方法,它内部没有做别名处理的,vite只针对你模版和css以及js中import的别名加载方式,你这种方式并不经过vite处理

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题