我刚刚在我的node.js应用程序中安装了jest。我可以很好地运行npm test
,直到我试图从另一个文件导入一些东西。
我有一个名为channel.test.js
的文件,我尝试了以下操作:
import { emptyChannelSortingQueue } from './channels.js'
import * as channel from './channels.js'
var channel = require('./channels.js')
字符串
在我的package.json
中,我已经有了"type": "module"
。
我仍然得到这个错误:
Jest遇到了意外的令牌
Jest无法解析文件。例如,当您的代码或其依赖项使用非标准JavaScript语法时,或者当Jest未配置为支持此类语法时,就会发生这种情况。
开箱即用的Jest支持Babel,它将用于根据Babel配置将文件转换为有效的JS。
默认情况下,transformers会忽略“node_modules”文件夹。
你可以这样做:
- 如果您尝试使用ECMAScript模块,请参阅https://jestjs.io/docs/ecmascript-modules了解如何启用它。
- 如果您正在尝试使用TypeScript,请参阅https://jestjs.io/docs/getting-started#using-typescript
- 要转换某些“node_modules”文件,可以在配置中指定自定义的“transformIgnorePatterns”。
- 如果你需要一个自定义的转换,在你的配置中指定一个“transform”选项。
- 如果你只是想模拟你的非JS模块(例如二进制资产),你可以用“moduleNameMapper”配置选项将它们剔除。
你可以在文档中找到这些配置选项的更多细节和示例:
https://jestjs.io/docs/configuration的
有关自定义转换的信息,请参见:
https://jestjs.io/docs/code-transformation的
详细信息:
/Users/alishahome/Documents/Software_Engineering/megara/bot/src/utils/channels.js:1
({“Object.":function(module,exports,require,__dirname,__filename,jest){import {
^^^^^^
语法错误:无法在模块外部使用导入语句
我试着在我的dockerfile中修改这一行
RUN npm install --quiet
型
收件人:
RUN npm install --quiet --experimental-vm-modules
型
我也试着把它添加到我的package.json
中:
"jest": {
"testEnvironment": "node",
"moduleFileExtensions": ["js", "mjs"],
"transform": {},
"moduleNameMapper": {}
}
型
我还尝试安装babel/jest并将其放入babel.config.js
文件中:
module.exports = {
presets: [
[
"@babel/preset-env",
{
targets: {
node: "current"
}
}
]
]
};
型
1条答案
按热度按时间rsl1atfo1#
我最终需要将其添加到我的package.json中
字符串