Using ECMAScript21 in VSCode creates syntax error
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
11-13-2022 09:21 AM - edited 11-16-2022 01:36 AM
I was very exited to get started with development with modern Javascript, so I changed the settings in my scoped app and rewrote my application to it.
let MyClass = Class.create();
MyClass = class {
constructor() {}
}
I've written a class in a Script Include with this format in ServiceNow Studio everything working.
When importing the app to Visual Studio Code (VSCode), trying to sync the same Script include I get this error:
Syntax errors detected in PartyRegisterApi.script.js -> Parsing error: The keyword 'let' is reserved
I have tried changing the .eslintrc-file and package.json to no success. The contents of those files are pasted beneath.
Can anyone please help?
package.json (in this file I've tried several eslint-values)
{
"name": "now",
"version": "1.0.0",
"dependencies": {
"eslint": "8.27.0"
}
}
.eslintrc (this is not the original content, but what I found in the sys_property glide.ui.syntax_editor.linter.eslint_config)
{
"parserOptions": {
"ecmaVersion": 12
},
"rules": {
"sn-no-async-await": "error",
"sn-no-generator-functions": "error",
"sn-no-promises": "warn",
"sn-no-proxies": "warn",
"constructor-super": "warn",
"no-case-declarations": "warn",
"no-class-assign": "warn",
"no-compare-neg-zero": "warn",
"no-cond-assign": "warn",
"no-console": "warn",
"no-const-assign": "warn",
"no-constant-condition": "warn",
"no-control-regex": "warn",
"no-debugger": "warn",
"no-delete-var": "warn",
"no-dupe-args": "warn",
"no-dupe-class-members": "warn",
"no-dupe-keys": "warn",
"no-duplicate-case": "warn",
"no-empty-character-class": "warn",
"no-empty-pattern": "warn",
"no-empty": ["warn", { "allowEmptyCatch": true }],
"no-ex-assign": "warn",
"no-extra-boolean-cast": "warn",
"no-extra-semi": "warn",
"semi" : "warn",
"no-fallthrough": "warn",
"no-func-assign": "warn",
"no-global-assign": "warn",
"no-inner-declarations": "warn",
"no-invalid-regexp": "warn",
"no-irregular-whitespace": "warn",
"no-mixed-spaces-and-tabs": "warn",
"no-new-symbol": "warn",
"no-obj-calls": "warn",
"no-octal": "warn",
"no-redeclare": "warn",
"no-regex-spaces": "warn",
"no-self-assign": "warn",
"no-sparse-arrays": "warn",
"no-this-before-super": "warn",
"no-undef": "off",
"no-unexpected-multiline": "warn",
"no-unreachable": "warn",
"no-unsafe-finally": "warn",
"no-unsafe-negation": "warn",
"no-unused-labels": "warn",
"no-unused-vars": "off",
"no-useless-escape": "warn",
"require-yield": "warn",
"use-isnan": "warn",
"valid-typeof": "warn"
}
}
- 4,653 Views
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-02-2023 03:46 AM - edited 08-02-2023 05:33 AM
-
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-02-2023 03:47 AM
A workaround I found is bypassing the linter entirely by making it run on an empty string instead of the file you're syncing.
Change
const e=u.executeOnText(l)
to
const e=u.executeOnText("")
Use with caution 🙂
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-25-2025 09:28 AM
I adapted it a bit to only remove the esLint lines that make the executeOnText throw an exception (which will crashing the extension and preventing the sync from happening).
Change:
const e=u.executeOnText(l);
To:
const sanitizedText = l.replace(/\/\* eslint .*?\*\//g, ''); const e=u.executeOnText(sanitizedText)
Seems to work fine for me, I can finally sync scripts with esLint rules in them.
Also use with caution, but maybe a bit less caution then the suggestion of my previous poster. Thanks for the inspiration though. 🙂
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-24-2023 12:50 AM
Thank. This worked for me. @Servicenow would be great if you can fix this properly and bring full support for es2020 in the extension.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-24-2023 12:55 AM
worked for me!