在 AVA 测试中使用 webpack 别名

Using webpack aliases in AVA tests

我需要在运行时将来自 webpack 的别名包含到 AVA 中。

我使用 webpack 的 resolve.alias 访问了 src 文件夹下的所有文件:

webpack.config.js

resolve: {
  alias: {
    '@': path.resolve(__dirname, 'src/'),
  },
},

然后是我自己的模块的 @ 特殊前缀,如下所示:

我的-module.js

import main from '@/view/main'

这是我的 AVA 配置:

package.json

"scripts": {
  "test-unit": "ava test/unit"
},
"ava": {
  "require": ["esm"]
},

是否可以像在这个 mocha 解决方案中那样向 package.json 添加一些东西?

非常感谢您的宝贵时间和帮助!

如果我理解得很好,你可以使用 link-module-alias npm 包来完成。

  1. 将此添加到您的 package.json

    "scripts": {
      "postinstall": "link-module-alias",
      "preinstall": "command -v link-module-alias && link-module-alias clean || true"
      "test": "ava"
    },
    "_moduleAliases": {
      "@": "src"
    }
    
  2. npm i && npm test

如果您需要更多详细信息,可以下载工作示例 here