Coder Social home page Coder Social logo

node: --run requires an argument about node HOT 10 CLOSED

lydell avatar lydell commented on July 26, 2024
node: --run requires an argument

from node.

Comments (10)

aduh95 avatar aduh95 commented on July 26, 2024 1

If someone sends a PR to fix the docs, it will probably be accepted.

from node.

lydell avatar lydell commented on July 26, 2024 1

That doesn’t explain why the repl is started, though? I was surprised when that happened 😄

from node.

RedYetiDev avatar RedYetiDev commented on July 26, 2024

Reproductions:

$ node --run ''
Welcome to Node.js v22.5.0.
Type ".help" for more information.
>
$ node --run
node: --run requires an argument
$ node --run .
ExperimentalWarning: Task runner is an experimental feature and might change at any time

Missing script: "."

Available scripts are:
<...>

from node.

tniessen avatar tniessen commented on July 26, 2024

What about the first example from @RedYetiDev's last comment? What's the expected behavior? Why is there a REPL being started?

from node.

RedYetiDev avatar RedYetiDev commented on July 26, 2024

What about the first example from @RedYetiDev's last comment? What's the expected behavior? Why is there a REPL being started?

My reproductions were a bit out of order, but at the end of the issue, the author notes:

Giving the empty string to --run does not try to execute { "scripts": { "": "echo hi" } }. Neither does npm run '' though :)

from node.

RedYetiDev avatar RedYetiDev commented on July 26, 2024

That doesn’t explain why the repl is started, though? I was surprised when that happened 😄

FWIW my assumption is that it treats an empty string as if the flag wasn't there, so it performs the action as if that flag wasn't applied, in this case, trigging the REPL.

from node.

tniessen avatar tniessen commented on July 26, 2024

That's still quite odd and hardly seems desirable... I am wondering if it's intentional. @anonrig

from node.

richardlau avatar richardlau commented on July 26, 2024

Reproductions:

$ node --run ''
Welcome to Node.js v22.5.0.
Type ".help" for more information.
>

That's odd behaviour. This is valid JSON:

{
        "name": "nodejs_run_test",
        "scripts": {
                "hello": "echo hello",
                "world": "echo world",
                "": "echo !"
        }
}

i.e. it's valid to have an empty string as a JSON key. So I would expect node --run '' to behave the same as if a non-existent script was specified (unless of course a "" script was defined as in the example above).

FWIW as reference, npm can't run a "" named script:

$ npm run-script ''
npm error valid event not provided to runScript
npm error A complete log of this run can be found in: /home/rlau/.npm/_logs/2024-07-22T12_39_38_822Z-debug-0.log
$

so Node.js could choose to do the same (but should probably be documented to do so, given that "" is a valid JSON key).

from node.

tniessen avatar tniessen commented on July 26, 2024

Since npm compatibility clearly wasn't a priority, I think it's reasonable for Node.js to implement some reasonable behavior instead.

from node.

richardlau avatar richardlau commented on July 26, 2024

Since npm compatibility clearly wasn't a priority, I think it's reasonable for Node.js to implement some reasonable behavior instead.

Agreed, I'm just not sure the current behaviour is reasonable 🙂.

from node.

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.