gpt4 book ai didi

javascript - 从应用程序根目录导入/需要的 NPM 依赖项

转载 作者:行者123 更新时间:2023-12-02 23:27:14 24 4
gpt4 key购买 nike

假设我创建了一个名为 App 的应用。它安装一个名为 package 的 npm 依赖项。

现在假设 package 要求 App 具有以下文件结构:

  • 应用程序/
    • 节点模块/
      • 包/
        • index.js
        • package.json
    • 文件夹/
      • 文件.js
    • index.js
    • package.json

App/node_modules/package/index.js中,需要导入/需要位于App/folder/file.js的文件。

例如:

import File from "../../folder/file";

这是最好的方法吗?有什么方法可以在导入中引用应用程序的根目录,而不需要使用 ../../

最佳答案

没有。这不是最好的方法。模块不应该向用户提出要求。

改用依赖注入(inject) - 让您的用户向您传递您需要的对象:

package/index.js

let File = null;

function init (fileModule) {
File = fileModule;
}

export init;

// ...

这样您就可以从主应用程序传递 File 对象:

应用程序/index.js

import { init } from 'package';
import File from './folder/file';

init(File);

如何设计 API 来传递“中间件”取决于您。以上只是一个建议。您可以将其作为参数传递给构造函数,例如:

const package = new Package(File);

这实际上就是 Express 等框架的工作原理。它允许 Express 在不知道代码结构的情况下进行扩展:

app.use(someMiddleware); // Express never "requires" your middleware
// instead it allows you to pass middleware to itself

关于javascript - 从应用程序根目录导入/需要的 NPM 依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56681082/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com