簡體   English   中英

如何在 AVA 測試中設置別名

[英]How to set an Alias in AVA tests

我正在嘗試在我的項目中全局設置別名,而不使用 Webpack、Babel 等。現在我對AVA進行了簡單的測試。

我正在使用模塊別名npm package 讓我設置 package.Z466DEEC5 我的別名76ECDF5FCA6D38 我的別名76ECDF5FCA6D38 但是,當我嘗試在具有基本別名的文檔之后創建一個簡單的示例時,它找不到該文件:

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": "."
  }
}

測試.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)
})

我的模塊.js

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

將這些文件保存到一個空文件夾,然后在終端的該路徑中: npm i && npm run test

也許我缺少相同的基礎知識,非常感謝您的時間和幫助!

我遇到了同樣的問題。 您可以通過在 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": "."
  }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM