【发布时间】:2020-11-25 08:34:44
【问题描述】:
谁能解释一下,为什么 ESlint(VS Code、WebStorm)会突出显示这种导入变体?
import UserBlock from '~/templates/UserBlock'; //js file
.babelrc
"plugins": [
[
"babel-plugin-root-import",
{
"rootPathSuffix": "./src/",
"rootPathPrefix": "~/"
}
]
]
.eslintrc.js
module.exports = {
settings: {
'import/resolver': {
'babel-plugin-root-import': {
rootPathPrefix: '~',
rootPathSuffix: 'src',
},
},
},
};
【问题讨论】:
-
~指的是您的主目录。你应该在你的项目中使用绝对的东西,比如/ -
@japrescott - 你的意思是我应该把这个目录自己添加到配置中,并且只能在“~”中使用波浪号而没有任何子文件夹?
-
不,我是说您不应该在任何配置中使用 Tilde/
~,因为这肯定在您的项目之外。用./替换所有~ -
@japrescott 在
babel-plugin-root-import的上下文中,~用作项目根目录的别名。所以,你不用../../../src/web/comp/xyz,而是写~/src/web/comp/xyz,然后 babel 会计算出剩下的部分。该插件[建议波浪号指向您的项目根目录][github.com/entwicklerstube/babel-plugin-root-import#config],它与用户主目录的 shell 别名没有实际关系。 -
@PatFowler 感谢您让我知道这是一个“功能”! :)
标签: typescript babeljs eslint