正如title所说,我在创建一个类型记录库npm包方面遇到了麻烦。当试图导入节点-获取以执行提取调用时,我的问题出现了。我已经创建了这个样本git回购来重现我的问题。
我在这一点上使用了这些命令:
npm i --save-dev typescript ts-node jest @types/jest ts-jest
jest --init
npm i node-fetch我已经将package.json配置为:
"main": "dist/index.js",
"types": "dist/index.d.ts",
"files": [
"/dist"
],
"scripts": {
"test": "jest --coverage",
},我已经将tsconfig.json配置为:
{
"compilerOptions": {
"module": "commonjs",
"target": "es2015",
"declaration": true,
"outDir": "./dist"
},
"include": ["src/**/*"]
}我的jest.config.js包含:
module.exports = {
preset: "ts-jest",
testEnvironment: "node",
transformIgnorePatterns: ["/node_modules/"],
};当我运行npm text时,结果如下:
> tslib@0.1.0 test
> jest --coverage
FAIL tests/unit/index.test.ts
● Test suite failed to run
Jest encountered an unexpected token
Jest failed to parse a file. This happens e.g. when your code or its dependencies use non-standard JavaScript syntax, or when Jest is not configured to support such syntax.
Out of the box Jest supports Babel, which will be used to transform your files into valid JS based on your Babel configuration.
By default "node_modules" folder is ignored by transformers.
Here's what you can do:
• If you are trying to use ECMAScript Modules, see https://jestjs.io/docs/ecmascript-modules for how to enable it.
• If you are trying to use TypeScript, see https://jestjs.io/docs/getting-started#using-typescript
• To have some of your "node_modules" files transformed, you can specify a custom "transformIgnorePatterns" in your config.
• If you need a custom transformation specify a "transform" option in your config.
• If you simply want to mock your non-JS modules (e.g. binary assets) you can stub them out with the "moduleNameMapper" config option.
You'll find more details and examples of these config options in the docs:
https://jestjs.io/docs/configuration
For information about custom transformations, see:
https://jestjs.io/docs/code-transformation
Details:
/Users/d.tentoni/Documents/uni/tslib/node_modules/node-fetch/src/index.js:9
import http from 'node:http';
^^^^^^
SyntaxError: Cannot use import statement outside a module
> 1 | import fetch from "node-fetch";
| ^
2 |
3 | export async function scrape() {
4 | const response = await fetch(
at Runtime.createScriptFromCode (node_modules/jest-runtime/build/index.js:1728:14)
at Object.<anonymous> (src/scraper.ts:1:1)有人对我有什么建议吗?如何在我的类型记录项目中使用节点获取?
编辑1:使用安装在命令得到中的npm i got获得相同的错误。
编辑2:添加jest.config.js文件内容
发布于 2022-01-05 16:58:06
你有开玩笑的配置吗?您必须指定使用ts- jest,正如在jest的第3行中所说,jest不能读取非JS语法(只有Babel),但它看起来不像有babel配置文件。这意味着Jest试图以JavaScript的形式运行JavaScript,这显然会引发一个SyntaxError。
尝试运行npx ts-jest config:init或如果您喜欢纱线yarn ts-jest config:init
https://stackoverflow.com/questions/70596558
复制相似问题