【问题标题】:Is it possible to import a function in a modules subfolder是否可以在模块子文件夹中导入功能
【发布时间】:2020-05-19 10:20:41
【问题描述】:

我正在尝试访问 jsQR 模块中的 decode() 方法。

我找到了一个直接调用 decode() 的示例,但它来自 HTML 文件,而不是 nodejs。

在可视化代码中我看到了这个......

我知道默认导出是在 index.d.ts 中定义的,但是是否可以在 dist 文件夹的其余部分导入其他类/函数?

我尝试使用require("jsqr/decoder")require("jsqr/decoder/decode") 导入,但无济于事。

编辑

明确地说,我不想要jsQR,默认导出。处理图像。我试图在图片中显式调用decode() 方法,该方法接受BitMatrix

【问题讨论】:

    标签: node.js import


    【解决方案1】:

    node_modules 的要求没有任何限制。所以,你的情况应该是这样的:

    TypeScript\ESM 模块:

    import { decode } from 'jsqr/dist/decoder/decoder';
    

    CommonJS:

    const { decode } = require('jsqr/dist/decoder/decoder');
    

    UPD:如果您查看dist folder for jsqr 包,您会发现只有d.ts 文件。这意味着您不能从那里导入它。

    但是,你可以找到模块here的实际导出:

    这意味着您应该可以从jsqr 导入它:

    const { decode } = require('jsqr');
    

    【讨论】:

    • 给我...SyntaxError: Cannot use import statement outside a module
    • 这是我收到错误时尝试的第一件事:) 也不起作用。
    • 那么这意味着那里没有文件,或者没有名为decode的函数。检查您在文件中有函数的实际实现,而不仅仅是打字。
    • 我对@9​​87654333@ 的工作原理一无所知。在我分享的图片中,我可以看到文件/node_modules/jsqr/dist/decoder/decoder.d.ts,其中包含方法声明export declare function decode,所以我希望我可以导入/引用/等。这个方法。
    • d.ts 文件仅存储类型信息。这些文件没有实现。这些就像 C 中的 .h 文件。查找 .ts.js 文件,这些都有您正在寻找的实现。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-07-01
    • 1970-01-01
    • 2012-02-15
    • 1970-01-01
    • 2019-10-23
    • 2019-07-18
    相关资源
    最近更新 更多