我正在使用
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
:除了名称、版本、描述、脚本和依赖项之外,没有任何内容。
似乎是由于他们这边的插件问题本身造成的,所以您能否按照他们在此处提到的那样降级软件包版本https://github.com/colinhacks/zod/issues/347。