1

my node version is v8.11.3, I just make a simple class and run it in the following command.

node test --harmony-async-await

test.js

import * as moment from 'moment';

class test {
     web;
     async getToken(symbol) { 
        return  symbol; 
    }
}

it comes out with a error on the web variable and import

import * as moment from 'moment';
^^^^^^
web;
^^^^^^

SyntaxError: Unexpected token import
        at createScript (vm.js:80:10)
        at Object.runInThisContext (vm.js:139:10)
        at Module._compile (module.js:616:28)
        at Object.Module._extensions..js (module.js:663:10)
        at Module.load (module.js:565:32)
        at tryModuleLoad (module.js:505:12)
        at Function.Module._load (module.js:497:3)
        at Module.require (module.js:596:17)
        at require (internal/module.js:11:18)

how to solve it?


redefine js to mjs 

and

node test --harmony-async-await --experimental-modules

still doesn't work


npm install -g es-checker
es-checker

ECMAScript 6 Feature Detection (v1.4.1)

Variables
  √ let and const
  √ TDZ error for too-early access of let or const declarations
  √ Redefinition of const declarations not allowed
  √ destructuring assignments/declarations for arrays and objects
  √ ... operator

Data Types
  √ For...of loop
  √ Map, Set, WeakMap, WeakSet
  √ Symbol
  √ Symbols cannot be implicitly coerced

Number
  √ Octal (e.g. 0o1 ) and binary (e.g. 0b10 ) literal forms
  √ Old octal literal invalid now (e.g. 01 )
  √ Static functions added to Math (e.g. Math.hypot(), Math.acosh(), Math.imul() )
  √ Static functions added to Number (Number.isNaN(), Number.isInteger() )

String
  √ Methods added to String.prototype (String.prototype.includes(), String.prototype.repeat() )
  √ Unicode code-point escape form in string literals (e.g. \u{20BB7} )
  √ Unicode code-point escape form in identifier names (e.g. var \u{20BB7} = 42; )
  √ Unicode code-point escape form in regular expressions (e.g. var regexp = /\u{20BB7}/u; )
  √ y flag for sticky regular expressions (e.g. /b/y )
  √ Template String Literals

Function
  √ arrow function
  √ default function parameter values
  √ destructuring for function parameters
  √ Inferences for function name property for anonymous functions
  × Tail-call optimization for function calls and recursion

Array
  × Methods added to Array.prototype ([].fill(), [].find(), [].findIndex(), [].entries(), [].keys(), [].values() )
  √ Static functions added to Array (Array.from(), Array.of() )
  √ TypedArrays like Uint8Array, ArrayBuffer, Int8Array(), Int32Array(), Float64Array()
  √ Some Array methods (e.g. Int8Array.prototype.slice(), Int8Array.prototype.join(), Int8Array.prototype.forEach() ) added to the TypedArray prototypes
  √ Some Array statics (e.g. Uint32Array.from(), Uint32Array.of() ) added to the TypedArray constructors

Object
  √ __proto__ in object literal definition sets [[Prototype]] link
  √ Static functions added to Object (Object.getOwnPropertySymbols(), Object.assign() )
  √ Object Literal Computed Property
  √ Object Literal Property Shorthands
  √ Proxies
  √ Reflect

Generator and Promise
  √ Generator function
  √ Promises

Class
  √ Class
  √ super allowed in object methods
  √ class ABC extends Array { .. }

Module
  × Module export command
  × Module import command


=========================================
Passes 38 feature Detections
Your runtime supports 90% of ECMAScript 6
=========================================

how can I get 100% support, especailly on the export and import

user824624
  • 7,077
  • 27
  • 106
  • 183
  • 1
    I don't think the way you're declaring the class is semantically correct. It's not obvious what you're trying to do with the web variable. – maxpaj Jun 20 '18 at 08:58
  • 1
    Possible duplicate of [nodejs 8 import module - require or import?](https://stackoverflow.com/questions/44985913/nodejs-8-import-module-require-or-import) – str Jun 20 '18 at 09:00
  • i can't use export, import, public or define any class variable, I see your post but didn't find the solution to this – user824624 Jun 20 '18 at 09:03
  • What exactly is `web;` supposed to do? Should it be a class field? If yes, that is not possible with JavaScript [yet](https://github.com/tc39/proposal-class-fields). – str Jun 20 '18 at 09:33
  • I am in the latest version of node, still not working – user824624 Jun 20 '18 at 09:36
  • You have to be more specific than "not working". – str Jun 20 '18 at 09:37
  • i can't use import or export, for example, import * as moment from 'moment'; i can define class test {}, but having the public / private variable in the class is not allowed to compile. – user824624 Jun 20 '18 at 09:43

0 Answers0