javascript - 如何将静态资产与 npm 模块可执行文件一起使用?
问题描述
有没有办法在 Node.js NPM 模块中拥有可执行文件(可执行文件位于与模块完全不同的位置),以获得可执行文件可以访问的附加文件(或带有文件的目录)?
这与从可执行文件的 npm 模块打开文件中的问题相同,但措辞不同,我有 REPL,我想加载可执行文件来自的模块中的文件。
这应该是简单而常见的任务,但我无法找到解决方案,也许你知道一些包含二进制文件的包,查看源代码我就能弄清楚这一点。
解决方案
找到了再次需要时如何做到这一点。查看模块的文档
我找到了功能:
require.resolve(request[, options])
使用内部 require() 机制来查找模块的位置,而不是加载模块,只返回解析的文件名。
所以要加载静态资产,你只需要这个:
function boostrap() {
var path;
try {
path = require.resolve('./examples/helpers.lips');
} catch (e) {
path = require.resolve('@jcubic/lips/examples/helpers.lips');
}
var data = fs.readFileSync(path);
return run(data, env);
}
我需要测试两种情况,如果我可以使用模块名称进行该功能并且我有源代码,它将抛出与我作为本地文件调用并且我不在源代码中一样的情况。
推荐阅读
- python - 如何更改 jupyter notebook 的 Anaconda 环境?
- c++ - 为什么隐藏窗口并显示另一个窗口时 C++ ShowWindow() 不能正常工作?
- java - 在 Maven 项目中添加 Angular 作为 Maven 模块
- python - python中其他目录中的类中的I/O
- sql - 根据条件获取最新行
- c# - Task.Run 中的 Task.delay
- ruby-on-rails-4 - 如何在 Rails 4 上使用 RuboCop::Cop::Rails::ApplicationRecord
- nuxt.js - Nuxt.js google AdSense 返回错误 支持一个标签
- node.js - 如何在 AWS Elasticache 中测试 redis 的性能?
- reactjs - 如何使用反应修复错误“无法在回调函数中调用反应使用钩子”?