首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在AVA测试中设置别名

如何在AVA测试中设置别名
EN

Stack Overflow用户
提问于 2019-11-21 11:00:47
回答 1查看 351关注 0票数 0

在我的项目中,我试图在全球范围内设置别名,而不使用Webpack、Babel等。现在,我有一个简单的AVA测试。

我使用的是模块别名 npm包,它允许我在package.json中设置别名。但是,当我尝试使用基本的别名在文档之后创建一个简单的示例时,它不会找到该文件:

代码语言:javascript
复制
Error: Cannot find module '@root/my-module.js'

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

package.json

代码语言:javascript
复制
{
  "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

代码语言:javascript
复制
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

代码语言:javascript
复制
export default function cube(x) {
  return x * x * x
}

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

也许我错过了同样的基础,非常感谢你的时间和帮助!

EN

回答 1

Stack Overflow用户

发布于 2019-12-18 11:17:43

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

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

代码语言:javascript
复制
{
  "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": "."
  }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58973375

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档