Javascript 如何在AVA测试中设置别名
我正在尝试在我的项目中全局设置别名,而不使用Webpack、Babel等。现在我有一个简单的测试 我使用的npm包允许我在package.json中设置别名。但是,当我尝试使用基本别名创建文档后面的简单示例时,它找不到该文件:Javascript 如何在AVA测试中设置别名,javascript,npm,alias,package.json,ava,Javascript,Npm,Alias,Package.json,Ava,我正在尝试在我的项目中全局设置别名,而不使用Webpack、Babel等。现在我有一个简单的测试 我使用的npm包允许我在package.json中设置别名。但是,当我尝试使用基本别名创建文档后面的简单示例时,它找不到该文件: Error: Cannot find module '@root/my-module.js' 您可以使用以下3个文件复制此示例: package.json { "name": "ava-alias", "version": "1.0.0", "descrip
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)
})
export default function cube(x) {
return x * x * x
}
my module.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)
})
export default function cube(x) {
return x * x * x
}
将这些文件保存到空文件夹中,然后保存到终端的该路径中:npm i&&npm run test
也许我错过了相同的基本知识,非常感谢您的时间和帮助 我遇到了同样的问题。 您可以通过在Ava配置中使用
模块别名/寄存器来解决此问题
您的包.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": "."
}
}