別のモジュールを必要とする文字列から関数を作成したい(尋ねないでください)。
ノードインタラクティブシェルでそれを行おうとすると、すべてがうまくいき、ダンディになります。
> f = new Function("return require('crypto')");
[Function]
> f.call()
{ Credentials: [Function: Credentials],
(...)
prng: [Function] }
ただし、まったく同じコードをファイルに入れると、require関数は使用できないと言われます。
israfel:apiary almad$ node test.coffee
undefined:2
return require('crypto')
^
ReferenceError: require is not defined
at eval at <anonymous> (/tmp/test.coffee:1:67)
at Object.<anonymous> (/tmp/test.coffee:2:3)
at Module._compile (module.js:446:26)
at Object..js (module.js:464:10)
at Module.load (module.js:353:31)
at Function._load (module.js:311:12)
at Array.0 (module.js:484:10)
at EventEmitter._tickCallback (node.js:190:38)
それを修正する方法は?
また、node.jsのコンテキスト/スコープについて何も知らないことを教えてくれます。それは何ですか?