如何动态安装节点模块?

时间:2019-01-27 07:18:17

标签: node.js typescript npm

我有一个多模块节点项目。我想在第一个模块中安装一些模块作为依赖项。因此,基于一个参数,我想安装其他模块或模块列表。

Server/
    |-src/
    |   |-languageProcessor.ts
    |
    |-node_moodules/
    |
    |-package.json
    |   dependencies: lang1, lang2 or lang3
    |
    |-tsconfig.json

Language/
    |-lang1/
    |   |-src/
    |   |-node_modules/
    |   |-package.json
    |   |-tsconfig.json
    |
    |-lang2/
    |   |-src/
    |   |-node_modules/
    |   |-package.json
    |   |-tsconfig.json
    |
    |-lang3/
    |   |-src/
    |   |-node_modules/
    |   |-package.json
    |   |-tsconfig.json

因此,我的Server模块可以依赖于lang1 or lang2 or lang3或全部依赖。我将对该服务器模块进行docker化,然后将使用一种图像来显示其中一种语言。而且,如果我的服务器提供的是lang1,则我不会打包其他语言的源代码。因此,让npm install代表lang1时,我不想在node_modules的{​​{1}}目录中拥有其他语言模块的代码。

我可以做的一件事是在开发时安装所有模块。但是,在对其进行docker化时,我将安装所有必需的模块,然后运行Servernpm install lang1等。在npm install lang2的代码中,我将使用动态导入。

是否有更好的方法可以解决这个问题?就像,如果我只是提供lang1,lang2的列表,然后npm相应地安装它们。

0 个答案:

没有答案