问题描述
我将我的react项目升级为使用monaco-editor版本0.21.0,因为从那时开始,对于导入了monaco-editor的文件的开玩笑的测试开始失败,并出现以下错误:
● Test suite Failed to run
/Users/omerharoon/Documents/code/packages/webapp/node_modules/monaco-editor/esm/vs/editor/editor.api.js:20
const global = self; // Set defaults for standalone editor
^
SyntaxError: Identifier 'global' has already been declared
at compileFunction (<anonymous>)
2 |
3 | import React from 'react';
> 4 | import * as monaco from 'monaco-editor';
| ^
5 | import { Resizable } from 're-resizable';
6 | import {
7 | getLanguageFromFilename,at Runtime._execModule (node_modules/jest-runtime/build/index.js:1179:56)
at Object.<anonymous> (src/components/helpers/MonacoEditor/index.tsx:4:1)
at Object.<anonymous> (src/components/helpers/MonacoEditor/monaco_colorization.spec.tsx:6:1)
这是在升级后立即开始的,旧版本是0.19.3,所有测试在该版本上都可以正常工作。 monaco-editor-webpack-plugin也从1.9.0升级到2.0.0
我们是直接从摩纳哥进口
node_modules/monaco-editor/esm/vs/editor/editor.api
为了克服延迟加载问题。
最佳配置:
"jest": {
"modulePaths": [
"<rootDir>/src"
],"collectCoverageFrom": [
"**/*.{js,jsx,ts,tsx}","!**/*.d.ts","!**/node_modules/**","!**/public/**","!**/next.config.js","!**/server.js"
],"setupFilesAfterEnv": [
"<rootDir>/setupTests.js"
],"testPathIgnorePatterns": [
"<rootDir>/node_modules/","<rootDir>/.next/","<rootDir>/public/","<rootDir>/config/","<rootDir>/next.config.js","<rootDir>/server.js","<rootDir>/build/"
],"transform": {
"^.+\\.[jt]sx?$": "babel-jest","^.+\\.css$": "<rootDir>/config/jest/csstransform.js"
},"transformIgnorePatterns": [
"/node_modules/(?!monaco-editor)/","^.+\\.module\\.(css|sass|scss)$"
],"moduleNameMapper": {
"^monaco-editor$": "monaco-editor/esm/vs/editor/editor.api","^.+\\.module\\.(css|sass|scss)$": "identity-obj-proxy"
},"coverageReporters": [
"text",[
"lcov",{
"projectRoot": "../../"
}
]
]},
解决方法
升级到monaco-editor 0.23.0
为我解决了这个问题。