【发布时间】:2019-01-05 01:02:16
【问题描述】:
我正在创建一个包,它将从用户那里获取一个 JavaScript 对象并用它做一些事情。所有用户需要做的就是写文件名。像这样node package.js file.js。
我使用这样的东西:
const object = require(process.argv[2]);
但是 linter 给了我这个 import/no-dynamic-require 并且 webpack 也会抛出一个警告,比如:
30:14-27 Critical dependency: the request of a dependency is an expression
那么您认为使用该文件的最佳方式是什么?
【问题讨论】:
-
您可以使用
fs.readFile()和eval()自己动态加载和运行代码。不知道你真正需要什么,因为我不知道你真正想要完成什么。 -
您的错误信息暗示您可能正在使用类似 webpack 的东西。如果是这种情况,它会在捆绑时分析所有依赖项,因此您不能将变量与
require()一起使用,因为它会预先捆绑您导入的所有内容。 -
请描述您是如何捆绑和运行此代码的?如果您不使用捆绑程序并且在服务器上(而不是在浏览器中)运行,则可以使用带有
require()的表达式。
标签: javascript node.js import require fs