我有一个多模块节点项目。我想在第一个模块中安装一些模块作为依赖项。因此,基于一个参数,我想安装其他模块或模块列表。
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化时,我将安装所有必需的模块,然后运行Server
或npm install lang1
等。在npm install lang2
的代码中,我将使用动态导入。
是否有更好的方法可以解决这个问题?就像,如果我只是提供lang1,lang2的列表,然后npm相应地安装它们。