如何在AVA测试中设置别名

我正在尝试不使用Webpack,Babel等在项目中全局设置别名。现在,我使用AVA做了一个简单的测试。

我正在使用module-alias npm软件包,该软件包可以让我在package.json中设置别名。但是,当我尝试根据文档创建带有基本别名的简单示例时,找不到文件:

Error: Cannot find module '@root/my-module.js'

您可以使用以下3个文件重现此示例:

package.json

{
  "name": "ava-alias","version": "1.0.0","description": "","main": "index.js","scripts": {
    "test": "ava"
  },"keywords": [],"author": "","license": "ISC","devDependencies": {
    "ava": "^2.4.0","esm": "^3.2.25","module-alias": "^2.2.2"
  },"ava": {
    "require": [
      "esm","module-alias"
    ]
  },"_moduleAliases": {
    "@root": "."
  }
}

test.js

require('module-alias/register')

import test from 'ava'
//import cube from './my-module.js'  // working
import cube from '@root/my-module.js' // not working

test('cube of 3 is 27',t => {
    t.is(cube(3),27)
})

my-module.js

export default function cube(x) {
  return x * x * x
}

将这些文件保存到一个空文件夹,然后在终端的该路径中:npm i && npm run test

也许我缺少相同的基础知识,非常感谢您的时间和帮助!

yxy200707 回答:如何在AVA测试中设置别名

我遇到了同样的问题。 您可以通过在Ava配置中使用module-alias/register来解决此问题。

您的 package.json 应该如下所示:

{
  "name": "ava-alias","version": "1.0.0","description": "","main": "index.js","scripts": {
    "test": "ava"
  },"keywords": [],"author": "","license": "ISC","devDependencies": {
    "ava": "^2.4.0","esm": "^3.2.25","module-alias": "^2.2.2"
  },"ava": {
    "require": [
      "esm","module-alias/register"
    ]
  },"_moduleAliases": {
    "@root": "."
  }
}
本文链接:https://www.f2er.com/3058773.html

大家都在问