有什么可以解决. alias的吗?它不会解析下面的路径:
// vite.config.js
import { defineConfig } from 'vite'
import path from 'path'
export default defineConfig({
resolve: {
alias: {
'@': path.resolve(__dirname, '/src'),
},
}
})
在我的HTML中:
<img src="@/assets/images/sample-1.jpg">
浏览器控制台出错:
GET http://localhost:3000/@/assets/images/sample-1.jpg
Failed to load resource: the server responded with a status of 404 (Not Found)
client:180 [vite] connecting...
client:202 [vite] connected.
有什么办法可以正确地做吗?
5条答案
按热度按时间h79rfbju1#
npm install @rollup/plugin-alias --save-dev
或
yarn add -D @rollup/plugin-alias
或
72qzrwbm2#
看起来不需要额外的插件(vite 3.1.0),配置
vite.config.js
:tsconfig.json
也别忘了linting,eslint也应该知道别名。只需安装eslint插件
eslint-import-resolver-alias
并在eslint配置.eslintrc.js
中定义它正如你所看到的,我为每个文件夹定义了别名,这是因为我对整个文件夹
src
的别名有问题,它对以@
符号开始的包抛出错误-无法解决包,但目前的方法工作得很好。cyej8jka3#
对于2.7.12版本(我目前的版本),一个简单的解决方案是将alias声明为数组:
检查类型时可以看到法律的格式:
其中AliasOptions是别名的数组:
qvtsj1bj4#
您可以将它们声明为一个带有键和值的对象,而不是自己解析路径。
举个小例子:
a2mppw5e5#
对于Vite版本>4,我做了两件事
首先解决vite.config.ts中的别名问题
第二,在tsconfig.json中添加路径