在 AVA 测试中使用 webpack 别名

Chu*_*mon 5 javascript alias webpack package.json ava

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

我使用 webpackresolve.alias来访问文件夹下的所有文件src

webpack.config.js

resolve: {
  alias: {
    '@': path.resolve(__dirname, 'src/'),
  },
},
Run Code Online (Sandbox Code Playgroud)

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

我的模块.js

import main from '@/view/main'
Run Code Online (Sandbox Code Playgroud)

这是我的 AVA 配置:

包.json

"scripts": {
  "test-unit": "ava test/unit"
},
"ava": {
  "require": ["esm"]
},
Run Code Online (Sandbox Code Playgroud)

是否可以像摩卡解决方案中那样向 package.json 添加一些内容? /sf/answers/3009257611/

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

gen*_*gns 1

如果我很理解你,你可以使用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"
    }
    
    Run Code Online (Sandbox Code Playgroud)
  2. npm i && npm test

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