]> git.ipfire.org Git - thirdparty/vuejs/core.git/commitdiff
chore: more descriptive eslint error messages for restricted syntax
authorEvan You <yyx990803@gmail.com>
Mon, 15 Apr 2024 08:06:33 +0000 (16:06 +0800)
committerEvan You <yyx990803@gmail.com>
Mon, 15 Apr 2024 08:06:33 +0000 (16:06 +0800)
.eslintrc.cjs
rollup.config.js

index 65653f40da2d7bb110d03992b94a39560db18bcf..0a44fb79aa972d7bfefef37dc2dff91b3271b2f2 100644 (file)
@@ -26,13 +26,23 @@ module.exports = {
     'no-restricted-syntax': [
       'error',
       banConstEnum,
-      // since we target ES2015 for baseline support, we need to forbid object
-      // rest spread usage in destructure as it compiles into a verbose helper.
-      'ObjectPattern > RestElement',
-      // tsc compiles assignment spread into Object.assign() calls, but esbuild
-      // still generates verbose helpers, so spread assignment is also prohiboted
-      'ObjectExpression > SpreadElement',
-      'AwaitExpression',
+      {
+        selector: 'ObjectPattern > RestElement',
+        message:
+          'Our output target is ES2016, and object rest spread results in ' +
+          'verbose helpers and should be avoided.',
+      },
+      {
+        selector: 'ObjectExpression > SpreadElement',
+        message:
+          'esbuild transpiles object spread into very verbose inline helpers.\n' +
+          'Please use the `extend` helper from @vue/shared instead.',
+      },
+      {
+        selector: 'AwaitExpression',
+        message:
+          'Our output target is ES2016, so async/await syntax should be avoided.',
+      },
     ],
     'sort-imports': ['error', { ignoreDeclarationSort: true }],
 
index 6ab5ca4294a228736c52c2cf684707a0c4a064d1..e8d5984184dbe63dd21dcfb58fb3c4ed05868fc0 100644 (file)
@@ -331,7 +331,7 @@ function createConfig(format, output, plugins = []) {
         tsconfig: path.resolve(__dirname, 'tsconfig.json'),
         sourceMap: output.sourcemap,
         minify: false,
-        target: isServerRenderer || isCJSBuild ? 'es2019' : 'es2015',
+        target: isServerRenderer || isCJSBuild ? 'es2019' : 'es2016',
         define: resolveDefine(),
       }),
       ...resolveNodePlugins(),
@@ -367,7 +367,7 @@ function createMinifiedConfig(/** @type {PackageFormat} */ format) {
       terser({
         module: /^esm/.test(format),
         compress: {
-          ecma: 2015,
+          ecma: 2016,
           pure_getters: true,
         },
         safari10: true,