我有兩個文件test.js
和x.js
,在同一個目錄:在Node中,如何在eval中需要文件?
test.js
:console.log(eval("require('x.js')"));
x.js
是空的。
預計:require
回報undefined
,所以沒有被記錄下來。
實際:node test.js
給我Error: Cannot find module 'x.js'
(爲簡潔起見省略了堆棧跟蹤)。
的情況聽起來類似this other question,與我用eval
而非new Function
的差異,並require
是定義,只是意外地工作。
這是爲什麼?
如何正確require
模塊eval
'd代碼?
強制性的「inb4 eval是邪惡的」:我*做*有很好的理由™ - 我正在編寫一個需要運行時編譯器的lisp宏系統。 – Anko