开玩笑的“意外令牌”导入 ES6 模块

时间:2021-06-04 10:48:36

标签: javascript jestjs

我在设置 Jest 以在我的一个项目中使用它时遇到了一些问题。当前项目通过 gulp 编译。设置测试库后,我在运行 npm run test 命令时收到“Jest 遇到意外令牌”错误。

这是我的包 json:

  "name": "xxx",
   "version": "1.0.0",
   "description": "xxxx website",
    "main": "main.js",
    "scripts": {
        "test": "jest",
        "test:watch": "jest --watch",
        "lint": "eslint --ignore-path .gitignore . --ext .js,.html",
        "lint:fix": "npm run lint -- --fix"
    },
    "author": "Delirium",
    "license": "ISC",
    "dependencies": {
        "@fortawesome/fontawesome-free": "^5.9.0",
        "aos": "^2.3.4",
        "jquery": "^3.4.1",
        "jquery-modal": "^0.9.2",
        "slick-carousel": "^1.8.1"
    },
    "devDependencies": {
        "@babel/core": "^7.7.5",
        "@babel/plugin-proposal-class-properties": "^7.13.0",
        "autoprefixer": "^9.7.3",
        "babel-eslint": "^10.1.0",
        "babel-jest": "^27.0.2",
        "babel-preset-env": "^1.7.0",
        "babel-preset-jest": "^27.0.1",
        "browser-sync": "^2.18.2",
        "eslint": "^7.27.0",
        "eslint-config-prettier": "^8.3.0",
        "eslint-plugin-cypress": "^2.11.3",
        "eslint-plugin-html": "^6.1.2",
        "eslint-plugin-import": "^2.23.3",
        "eslint-plugin-jest": "^24.3.6",
        "eslint-plugin-prettier": "^3.4.0",
        "eslint-plugin-simple-import-sort": "^7.0.0",
        "gulp": "^3.9.1",
        "gulp-babel": "^8.0.0",
        "gulp-babel-minify": "^0.5.1",
        "gulp-better-rollup": "^4.0.1",
        "gulp-clean": "^0.3.2",
        "gulp-clean-css": "^3.2.0",
        "gulp-concat": "^2.6.1",
        "gulp-plumber": "^1.1.0",
        "gulp-postcss": "^6.3.0",
        "gulp-rename": "^1.4.0",
        "gulp-sass": "^4.0.2",
        "gulp-sourcemaps": "^2.6.5",
        "gulp-uglify": "^3.0.2",
        "jest": "^27.0.4",
        "prettier": "^2.3.0",
        "rollup": "^2.49.0",
        "rollup-plugin-babel": "^4.4.0",
        "rollup-plugin-commonjs": "^10.1.0",
        "rollup-plugin-node-resolve": "^5.2.0",
        "run-sequence": "^1.2.2"
    },
    "browserslist": [
        "> 1%",
        "ie >= 8",
        "edge >= 15",
        "ie_mob >= 10",
        "ff >= 45",
        "chrome >= 45",
        "safari >= 7",
        "opera >= 23",
        "ios >= 7",
        "android >= 4",
        "bb >= 10"
    ],
    "jest": {
        "verbose": true,
        "transform": {
          "\\.js$": "./custom-transformer-jest.js"
        }
      }
}

我一直在使用我在其他项目中使用的转换 javascript 文件,但恐怕我得到了相同的结果。该文件包含:

'use strict';

const {transform} = require('@babel/core');
const jestPreset = require('babel-preset-jest');

module.exports = {
  process(src, filename) {
    const result = transform(src, {
      filename,
      presets: [jestPreset],
    });

    return result || src;
  },
};

问题是在运行我的测试时:

import { validateEmail } from '../js/includes/utils'

describe('Testing form email vaules', () => {

    ...
})

utils 文件中的 validateEmail 是:

export const validateEmail = (email) => {
    const re = /^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
    if (email != '' && re.test(email)) {
        return true;
    } else {
        return false;
    }
}

对不起,我不是 Jest 配置专家,但我无法设置一个新的干净的项目。有人能帮我理解这里的问题吗?

谢谢,

S.

0 个答案:

没有答案
相关问题