Skip to content
This repository has been archived by the owner on Oct 28, 2020. It is now read-only.

Support ES2015 modules #49

Closed
dotnetCarpenter opened this issue Jul 4, 2018 · 8 comments
Closed

Support ES2015 modules #49

dotnetCarpenter opened this issue Jul 4, 2018 · 8 comments

Comments

@dotnetCarpenter
Copy link

es-check ./src/**/*.mjs:

ES-Check: there were 22 ES version matching errors.

          ES-Check Error:
          ----
          · erroring file: ./src/annotations/annotation.iframe.mjs
          · error: SyntaxError: The keyword 'import' is reserved (1:0)
          · see the printed err.stack below for context
          ----

          SyntaxError: The keyword 'import' is reserved (1:0)

Proposed CLI: es-check --experimental-modules ./src/**/*.mjs or es-check --experimental-modules ./src/index.mjs. The latter points to the main file which import the rest of the app.

@dotnetCarpenter dotnetCarpenter changed the title Support ES2016 modules Support ES2015 modules Jul 4, 2018
@yowainwright
Copy link
Contributor

Hey @dotnetCarpenter! Your comment is being considered. I’ll respond again soon.

@yowainwright
Copy link
Contributor

@dotnetCarpenter what happens when you try something like, es-check es7 ../src/**/*.mjs?


If an optional module argument helps, would you want to add it to es-check? Read more here, within the acorns repository.

It would look something like something like this, es-check es6 modules ../src/**/*.mjs.

@yowainwright
Copy link
Contributor

Closing b/c of inactivity. Reach out if there is more feedback. 👌

@dotnetCarpenter
Copy link
Author

es-check es7 ./src/**/*.mjs:

ES-Check Error:
          ----
          · erroring file: ./src/utils/partial.mjs
          · error: SyntaxError: 'import' and 'export' may appear only with 'sourceType: module' (1:0)
          · see the printed err.stack below for context
          ----

          SyntaxError: 'import' and 'export' may appear only with 'sourceType: module' (1:0)

According to the README at acorn:

--ecma3|--ecma5|--ecma6|--ecma7|--ecma8|--ecma9|--ecma10: Sets the ECMAScript version to parse. Default is version 7.

The default is --ecma7 and ES2015 modules is in ECMA6, so it should be covered.

I'm using es-check version 2.0.4

@dotnetCarpenter
Copy link
Author

Strangely enough it seems to work in a simple example: https://gist.github.com/dotnetCarpenter/9e073526ad62068bdc2183a3459e42d0

But if I try the non-argument version on my real project I get:

ES-Check Error:
          ----
          · erroring file: ./src/utils/partial.mjs
          · error: SyntaxError: The keyword 'export' is reserved (1:0)
          · see the printed err.stack below for context
          ----

          SyntaxError: The keyword 'export' is reserved (1:0)
    at Parser.pp$4.raise (/home/dotnet/.nvm/versions/node/v8.11.3/lib/node_modules/es-check/node_modules/acorn/dist/acorn.js:2745:13)
    at Parser.pp$3.checkUnreserved (/home/dotnet/.nvm/versions/node/v8.11.3/lib/node_modules/es-check/node_modules/acorn/dist/acorn.js:2675:10)
    at Parser.pp$3.parseIdent (/home/dotnet/.nvm/versions/node/v8.11.3/lib/node_modules/es-check/node_modules/acorn/dist/acorn.js:2704:24)
    at Parser.pp$3.parseExprAtom (/home/dotnet/.nvm/versions/node/v8.11.3/lib/node_modules/es-check/node_modules/acorn/dist/acorn.js:2120:19)
    at Parser.pp$3.parseExprSubscripts (/home/dotnet/.nvm/versions/node/v8.11.3/lib/node_modules/es-check/node_modules/acorn/dist/acorn.js:2036:19)
    at Parser.pp$3.parseMaybeUnary (/home/dotnet/.nvm/versions/node/v8.11.3/lib/node_modules/es-check/node_modules/acorn/dist/acorn.js:2013:17)
    at Parser.pp$3.parseExprOps (/home/dotnet/.nvm/versions/node/v8.11.3/lib/node_modules/es-check/node_modules/acorn/dist/acorn.js:1955:19)
    at Parser.pp$3.parseMaybeConditional (/home/dotnet/.nvm/versions/node/v8.11.3/lib/node_modules/es-check/node_modules/acorn/dist/acorn.js:1938:19)
    at Parser.pp$3.parseMaybeAssign (/home/dotnet/.nvm/versions/node/v8.11.3/lib/node_modules/es-check/node_modules/acorn/dist/acorn.js:1914:19)
    at Parser.pp$3.parseExpression (/home/dotnet/.nvm/versions/node/v8.11.3/lib/node_modules/es-check/node_modules/acorn/dist/acorn.js:1885:19)
    at Parser.pp$1.parseStatement (/home/dotnet/.nvm/versions/node/v8.11.3/lib/node_modules/es-check/node_modules/acorn/dist/acorn.js:809:45)
    at Parser.pp$1.parseTopLevel (/home/dotnet/.nvm/versions/node/v8.11.3/lib/node_modules/es-check/node_modules/acorn/dist/acorn.js:700:23)
    at Parser.parse (/home/dotnet/.nvm/versions/node/v8.11.3/lib/node_modules/es-check/node_modules/acorn/dist/acorn.js:545:15)
    at Object.parse (/home/dotnet/.nvm/versions/node/v8.11.3/lib/node_modules/es-check/node_modules/acorn/dist/acorn.js:3808:37)
    at globbedFiles.forEach (/home/dotnet/.nvm/versions/node/v8.11.3/lib/node_modules/es-check/index.js:80:17)
    at Array.forEach (<anonymous>)

PS. I get a lot of errors like the one above.

@dotnetCarpenter
Copy link
Author

--module: Sets the parsing mode to "module". Is set to "script" otherwise.

@yowainwright Perhaps --module should be added to either es-check or acorn usage within es-check?

@yowainwright
Copy link
Contributor

@dotnetCarpenter thanks for looking 🙏

@jeffbski
Copy link
Contributor

jeffbski commented Sep 3, 2018

I have created a PR which adds the ES module parsing capability using either --module true at command line or "module": true in .escheckrc. @dotnetCarpenter @yowainwright

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants