无法在 cucumber.js 中的模块外部使用私有 npm 包的 import 语句

问题描述 投票:0回答:1

我正在使用

cucumberjs
来测试我的项目的多个组件是否有效。然而,在一个步骤中,我使用了一个在私有 npm 模块中定义的
zod
模式:

// in private npm package:
// constant.js
import { z } from 'zod';
export const ROLES = z.enum([
    'ROLE_USER',
    'ROLE_EMPLOYEE',
    'ROLE_MANAGER',
]);

此 npm 软件包安装在上层,我收到以下错误:

/Users/../node_modules/@privateModule/schemas/lib/constants.js:1
import { z } from 'zod';
^^^^^^

SyntaxError: Cannot use import statement outside a module

我不明白为什么其他模块似乎都能工作,但这个模块却不起作用。

这是测试组件中的

tsconfig.json

{
  "extends": "../../tsconfig.json",
  "compilerOptions": {
    "experimentalDecorators": true,
    "emitDecoratorMetadata": true,
    "sourceMap": true,
    "baseUrl": ".",
    "paths": {
      "core/*": ["../core/src/*"],
    }
  }
}

这是父文件夹中的配置:

{
  "extends": "@tsconfig/node18/tsconfig.json"
}

看起来每当我想从这个私有模块导入任何内容时,都会发生类似的错误。

根据要求提供私有模块的

package.json
文件:(我删除了依赖项、名称、作者和脚本)

{
  "type": "module",
  "main": "./dist/index.js",
  "exports": {
  "./functions": "./dist/functions/index.js",
    "./schemas": "./dist/schemas/index.js",
    ".": "./dist/index.js"
},
  "typesVersions": {
  "*": {
    "functions": [
      "dist/functions/index.d.ts"
    ],
      "schemas": [
      "dist/schemas/index.d.ts"
    ],
      "*": [
      "dist/index.d.ts"
    ]
  }
},
  
}

至于运行测试的组件的

package.json
:除了名称、版本、描述、脚本和依赖项之外,没有任何内容。

typescript cucumberjs
1个回答
0
投票

似乎是由于他们这边的插件问题本身造成的,所以您能否按照他们在此处提到的那样降级软件包版本https://github.com/colinhacks/zod/issues/347

© www.soinside.com 2019 - 2024. All rights reserved.