Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/477.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 对不同的NodeJS项目使用相同的代码库_Javascript_Node.js_Backend - Fatal编程技术网

Javascript 对不同的NodeJS项目使用相同的代码库

Javascript 对不同的NodeJS项目使用相同的代码库,javascript,node.js,backend,Javascript,Node.js,Backend,现在,我为我构建的系统提供了一个NodeJS后端。问题是,我还需要维护另一个后端实例以满足某些特定于客户端的需求,这两个实例共享大约70-80%的代码。目前我正在使用git分支将它们分开,我知道git不打算这样做,所以我想知道是否有什么东西允许我让两个单独的项目共享一些代码库,类似于Android中的风格。这样做的选项很少: 1。通过package.jsondependency将您自己的模块作为独立的依赖项与npm一起安装。 在git空间上创建自己的可重用代码作为单独的项目 通过将其与npm

现在,我为我构建的系统提供了一个NodeJS后端。问题是,我还需要维护另一个后端实例以满足某些特定于客户端的需求,这两个实例共享大约70-80%的代码。目前我正在使用git分支将它们分开,我知道git不打算这样做,所以我想知道是否有什么东西允许我让两个单独的项目共享一些代码库,类似于Android中的风格。

这样做的选项很少:

1。通过
package.json
dependency将您自己的模块作为独立的依赖项与
npm
一起安装。

  • 在git空间上创建自己的可重用代码作为单独的项目
  • 通过将其与npm安装一起安装来使用它,方式与常规npm模块相同
2。使用docker。

是容器虚拟化引擎,它允许您使用预装的基础架构/文件系统创建虚拟环境的映像

您只需在映像中预装一些linux操作系统、节点和模块,只需将您的唯一代码作为“卷”装载到容器中即可

  • 使用nodejs official image-它拥有基本node.js env所需的一切-创建自己的映像。在您拥有
    /reusible\u code
    文件夹和
    package.json
    create
    dockrile
    文件的文件夹中
Dockerfile:

 FROM node:6.9.2
 RUN mkdir app
 COPY ./reusable_code /app/reusable_code
 COPY ./package.json /app/package.json
 WORKDIR /app
 RUN npm install -g <your global modules> && npm install

注意:所有解决方案都假定您的可重用代码有单独的git项目。一般来说,这是一个很好的实践。

同意您的观点,但我认为节点本机的方式是通过npm link来实现#3,它设置符号链接并在package.json中引用它,以便您的代码可以将其视为一个外部模块
       cd ~/projects/unique_project1  # go into the dir of your main project
       npm link ../reusable_code     # link the dir of your dependency