How do I load my script into the node.js REPL?

前端 未结 11 1569
执念已碎
执念已碎 2020-11-30 17:59

I have a script foo.js that contains some functions I want to play with in the REPL.

Is there a way to have node execute my script and then jump into a

相关标签:
11条回答
  • 2020-11-30 18:21

    Here's a bash function version of George's answer:

    noderepl() {
        FILE_CONTENTS="$(< $1 )"
        node -i -e "$FILE_CONTENTS"
    }
    

    If you put this in your ~/.bash_profile you can use it like an alias, i.e.:

    noderepl foo.js
    
    0 讨论(0)
  • 2020-11-30 18:25

    i always use this command

    node -i -e "$(< yourScript.js)"
    

    works exactly as in Python without any packages.

    0 讨论(0)
  • 2020-11-30 18:25

    Another way is to define those functions as global.

    global.helloWorld = function() { console.log("Hello World"); }
    

    Then preload the file in the REPL as:

    node -r ./file.js
    

    Then the function helloWorld can be accessed directly in the REPL.

    0 讨论(0)
  • 2020-11-30 18:28

    Currently you can't do that directly, but you can mylib = require('./foo.js') in the REPL. Remember methods are exported, not declared as globals.

    0 讨论(0)
  • 2020-11-30 18:31

    Why not load the file into an interactive node repl?

    node -h
    -e, --eval script          evaluate script
    -i, --interactive          always enter the REPL even if stdin
    
    node -e 'var client = require("./build/main/index.js"); console.log("Use `client` in repl")' -i
    

    Then you can add to package.json scripts

    "repl": "node -e 'var client = require(\"./build/main/index.js\"); console.log(\"Use `client` in repl\")' -i",
    

    tested using node v8.1.2

    0 讨论(0)
提交回复
热议问题