Kikobeats / atom-node-resolver2

like atom-node-resolver but maintained
Other
1 stars 1 forks source link

Works with import #2

Open catest opened 7 years ago

catest commented 7 years ago

[Enter steps to reproduce below:]

  1. ...
  2. ...

Atom Version: 1.10.2 Electron Version: 0.37.8 System: Mac OS X 10.11.6 Thrown From: node-resolver2 package, v2.0.1

Stack Trace

Uncaught Error: Line 1: Illegal import declaration

At /Users/XXX/.atom/packages/node-resolver2/node_modules/esprima-fb/esprima.js:7736

Error: Line 1: Illegal import declaration
    at throwError (/Users/XXX/.atom/packages/node-resolver2/node_modules/esprima-fb/esprima.js:2824:21)
    at throwErrorTolerant (/Users/XXX/.atom/packages/node-resolver2/node_modules/esprima-fb/esprima.js:2836:24)
    at parseSourceElement (/Users/XXX/.atom/packages/node-resolver2/node_modules/esprima-fb/esprima.js:6446:17)
    at parseProgramElement (/Users/XXX/.atom/packages/node-resolver2/node_modules/esprima-fb/esprima.js:6502:16)
    at parseProgramElements (/Users/XXX/.atom/packages/node-resolver2/node_modules/esprima-fb/esprima.js:6534:29)
    at parseProgram (/Users/XXX/.atom/packages/node-resolver2/node_modules/esprima-fb/esprima.js:6547:16)
    at Object.parse (/Users/XXX/.atom/packages/node-resolver2/node_modules/esprima-fb/esprima.js:7724:23)
    at atom-text-editor.<anonymous> (/Users/XXX/.atom/packages/node-resolver2/index.js:18:23)
    at CommandRegistry.module.exports.CommandRegistry.handleCommandEvent (/Applications/Atom.app/Contents/Resources/app.asar/src/command-registry.js:260:29)
    at /Applications/Atom.app/Contents/Resources/app.asar/src/command-registry.js:3:61
    at KeymapManager.module.exports.KeymapManager.dispatchCommandEvent (/Applications/Atom.app/Contents/Resources/app.asar/node_modules/atom-keymap/lib/keymap-manager.js:580:16)
    at KeymapManager.module.exports.KeymapManager.handleKeyboardEvent (/Applications/Atom.app/Contents/Resources/app.asar/node_modules/atom-keymap/lib/keymap-manager.js:388:22)
    at WindowEventHandler.module.exports.WindowEventHandler.handleDocumentKeyEvent (/Applications/Atom.app/Contents/Resources/app.asar/src/window-event-handler.js:98:36)
    at HTMLDocument.<anonymous> (/Applications/Atom.app/Contents/Resources/app.asar/src/window-event-handler.js:3:61)

Commands

     -7:22.8.0 package-generator:generate-package (atom-text-editor.editor.is-focused)
     -6:35.1.0 node-resolver:open-selected-dependencies (atom-text-editor.editor.is-focused)
     -0:30.8.0 core:paste (atom-text-editor.editor.mini.is-focused)
     -0:00.0 node-resolver:open-selected-dependencies (atom-text-editor.editor.is-focused)

Config

{
  "core": {
    "themes": [
      "seti-ui",
      "seti-syntax"
    ]
  }
}

Installed Packages

# User
atom-beautify, v0.29.12 (inactive)
node-resolver2, v2.0.1 (inactive)
autocomplete-paths, v1.0.2 (active)
docblockr, v0.8.5 (active)
emmet, v2.4.3 (active)
esformatter, v2.0.1 (inactive)
language-babel, v2.41.0 (active)
linter, v1.11.16 (active)
node-resolver2, v2.0.1 (inactive)
seti-syntax, v1.0.1 (active)
seti-ui, v1.3.2 (active)
atom-dark-syntax, v0.27.0 (inactive)
atom-dark-ui, v0.52.0 (inactive)
atom-light-syntax, v0.28.0 (inactive)
atom-light-ui, v0.44.0 (inactive)
base16-tomorrow-dark-theme, v1.1.0 (inactive)
base16-tomorrow-light-theme, v1.1.1 (inactive)
one-dark-ui, v1.5.0 (inactive)
one-light-ui, v1.5.0 (inactive)
one-dark-syntax, v1.3.0 (inactive)
one-light-syntax, v1.3.0 (inactive)
solarized-dark-syntax, v1.0.2 (inactive)
solarized-light-syntax, v1.0.2 (inactive)
about, v1.5.3 (active)
archive-view, v0.61.1 (active)
autocomplete-atom-api, v0.10.0 (active)
autocomplete-css, v0.11.2 (active)
autocomplete-html, v0.7.2 (active)
autocomplete-plus, v2.31.1 (active)
autocomplete-snippets, v1.11.0 (active)
autoflow, v0.27.0 (inactive)
autosave, v0.23.1 (active)
background-tips, v0.26.1 (active)
bookmarks, v0.41.0 (active)
bracket-matcher, v0.82.1 (active)
command-palette, v0.38.0 (inactive)
deprecation-cop, v0.54.1 (active)
dev-live-reload, v0.47.0 (active)
encoding-selector, v0.22.0 (active)
exception-reporting, v0.39.0 (active)
find-and-replace, v0.201.0 (inactive)
fuzzy-finder, v1.3.0 (active)
git-diff, v1.1.0 (active)
go-to-line, v0.31.0 (inactive)
grammar-selector, v0.48.1 (active)
image-view, v0.58.2 (active)
incompatible-packages, v0.26.1 (active)
keybinding-resolver, v0.35.0 (active)
line-ending-selector, v0.5.0 (active)
link, v0.31.1 (inactive)
markdown-preview, v0.158.0 (active)
metrics, v0.53.1 (active)
notifications, v0.65.0 (active)
open-on-github, v1.2.0 (inactive)
package-generator, v1.0.0 (active)
settings-view, v0.242.2 (active)
snippets, v1.0.2 (active)
spell-check, v0.67.1 (active)
status-bar, v1.4.1 (active)
styleguide, v0.47.0 (active)
symbols-view, v0.113.0 (inactive)
tabs, v0.100.2 (active)
timecop, v0.33.2 (active)
tree-view, v0.208.2 (active)
update-package-dependencies, v0.10.0 (active)
welcome, v0.34.0 (active)
whitespace, v0.33.0 (active)
wrap-guide, v0.38.1 (active)
language-c, v0.52.1 (active)
language-clojure, v0.21.0 (active)
language-coffee-script, v0.47.2 (active)
language-csharp, v0.12.1 (active)
language-css, v0.37.1 (active)
language-gfm, v0.88.0 (active)
language-git, v0.15.0 (active)
language-go, v0.42.1 (active)
language-html, v0.45.1 (active)
language-hyperlink, v0.16.0 (active)
language-java, v0.23.0 (active)
language-javascript, v0.119.0 (active)
language-json, v0.18.2 (active)
language-less, v0.29.5 (active)
language-make, v0.22.2 (active)
language-mustache, v0.13.0 (active)
language-objective-c, v0.15.1 (active)
language-perl, v0.35.0 (active)
language-php, v0.37.2 (active)
language-property-list, v0.8.0 (active)
language-python, v0.45.0 (active)
language-ruby, v0.69.0 (active)
language-ruby-on-rails, v0.25.0 (active)
language-sass, v0.56.0 (active)
language-shellscript, v0.22.4 (active)
language-source, v0.9.0 (active)
language-sql, v0.23.0 (active)
language-text, v0.7.1 (active)
language-todo, v0.28.0 (active)
language-toml, v0.18.0 (active)
language-xml, v0.34.9 (active)
language-yaml, v0.26.0 (active)

# Dev
No dev packages
Kikobeats commented 7 years ago

Yes currently ES6 doesn't work.

Related: https://twitter.com/Kikobeats/status/777872609530740736

Definitely I need charliedowler's help for resolve this 😄 .

charliedowler commented 7 years ago

Hi,

I switched back to esprima and tried sourceType as you suggested. Imports won't work until this function is rewritten

astw(ast)(function(node) {
      if (!isRequire(node)) return

It's looking for require statements instead of both require and import, I don't think upgrading node-resolver to fully support es6 is as simple as bumping the esprima dependency.

What do you think?

Cheers, Charlie

Kikobeats commented 7 years ago

Actually I don't know how to walk into the AST. If you feel confortable doing that I can add you as collaborator 😁

Kikobeats commented 7 years ago

Hey,

I released a new patch version. I switch the package used for parsing the AST. Looks like we are near to get this working!

Kikobeats commented 7 years ago

The current limitation is how to detect import.

This libraries uses https://github.com/hughsk/is-require/blob/master/index.js that very basic and it depends of the node that you pass.

I isolate the case in a little example: https://gist.github.com/Kikobeats/89168d73f57fd8e6c17c0effe1403987

Related: https://github.com/ternjs/acorn/issues/441