Git Product home page Git Product logo

Comments (6)

weepy avatar weepy commented on May 23, 2024

( it also works in the browser)

from detective.

 avatar commented on May 23, 2024

'what about require("beep") in a string?'

from detective.

weepy avatar weepy commented on May 23, 2024

Congrats substack - you win the prize !

I think I had figured this when I wrote it, but it's a veeery edge case.

from detective.

weepy avatar weepy commented on May 23, 2024

you could easily remove these as well if you could be bothered. just extract all the strings and throw out the ones with strings inside them

from detective.

coolaj86 avatar coolaj86 commented on May 23, 2024

Regex and parsing can work okay, but not nearly as well as an AST.

See: https://github.com/coolaj86/node-pakman/blob/master/lib/get-requires.js
And: https://github.com/coolaj86/node-pakman/blob/master/lib/remove-comments.js

I keep having issues with my attempt, so I'm really glad to have found detective. :-D

from detective.

medikoo avatar medikoo commented on May 23, 2024

100% bulletproof parsing cannot be done safely just with regular expressions, it's impossible if you look closely at JavaScript syntax.
Still you can build straightforward code walker, that would be faster than any tool that creates whole AST tree. I've once built such for Webmake -> https://github.com/medikoo/find-requires/blob/master/lib/direct.js
It works perfect, the only thing it's missing for now is awareness of HTML comments which are valid in EcmaScript syntax. I haven't seen anyone using them, but still it would good to take them into account I plan fix that ;-)

from detective.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.