由于我有节点js的docker镜像,并且想要安装全局node_modules目录以及本地使用卷e . 我的docker-compose文件的一部分如下所示 .

...
node:
    image: node
    volumes:
      - ./webroot:/var/app
      - ./global_node_modules:/var/node_global
    environment:
      - NPM_CONFIG_PREFIX=/var/node_global
      - YARN_CONFIG_PREFIX=/var/node_global
      - PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/var/node_global/bin
    working_dir: /var/app
    stdin_open: true
    tty: true

我有 ./global_node_modules 目录,它映射到节点容器 /var/node_global 上的一个卷,我想在运行 npm --globalyarn global add 时安装全局包 . npm尊重env变量 NPM_CONFIG_PREFIX 但纱线不是这样 . 例如

npm install vue-cli --global 之后

ls -al / var / node_global / bin vue - > ../lib/node_modules/vue-cli/bin/vue vue-init - > ../lib/node_modules/vue-cli/bin/vue-init vue- list - > ../lib/node_modules/vue-cli/bin/vue-list

yarn global add vue-cli 之后

ls -al / var / node_global / bin vue - > ../../../usr/local/share/.config/yarn/global/node_modules/vue-cli/bin/vue vue-init - > . ./../../usr/local/share/.config/yarn/global/node_modules/vue-cli/bin/vue-init vue-list - > ../../../usr/local/股/的.config /纱/全球/ node_modules / VUE-CLI /斌/ VUE列表

我想知道是什么让纱线安装文件在不同的目录中 . 它似乎是连接二进制文件,但这还不够 .