我使用resolve.alias消除长相对路径。
// webpack.config.js
module.exports = {
// ...
resolve: {
alias: {
services: __dirname + '/src/services',
components: __dirname + '/src/components'
},
}
// componentFoo.js
import ServiceBar from 'services/serviceBar'
但是当我尝试使用ava运行测试时,节点找不到模块'services / serviceBar'。
我的文件夹结构:
SRC
--components
---- componentFoo.js
--services
---- serviceBar.js
测试
--index.js
答案 0 :(得分:2)
Node.js没有别名的任何内置选项。但你可以使用babel插件babel-plugin-module-resolver来定义别名,这应该很方便,因为AVA已经使用了babel。
您需要将它添加到您的babel插件中:
"plugins": [
["module-resolver", {
"alias": {
"services": "./src/services",
"components": "./src/components"
}
}]
]
路径相对于babel配置,除非您指定cwd
选项(list of options)。另一种可能性是使用root
选项而不是别名,这类似于webpack' resolve.modules
:
"root": ["./src"]