Я не уверен, что вы имели в виду именно это, но я остановился на этом вопросе, потому что мне не удалось установить node_modulesвнутри моего каталога проекта, поскольку он был смонтирован в файловой системе, которая не поддерживала символические ссылки («общая» папка виртуальной машины ).
Я нашел следующее обходное решение:
- Скопируйте
package.jsonфайл во временную папку в другой файловой системе
- Беги
npm installтуда
- Скопируйте полученный
node_modulesкаталог обратно в каталог проекта, используя cp -r --dereferenceдля преобразования символических ссылок в копии.
Я надеюсь, что это поможет кому-то еще, кто столкнется с этим вопросом при поиске способа перехода node_modulesна другую файловую систему.
Другие варианты
Существует еще один обходной путь, который я нашел по этому вопросу GitHub , что @Charminbear связанного с , но это не работает с , gruntпотому что он не поддерживает , NODE_PATHкак на https://github.com/browserify/resolve/issues/136 :
Допустим, у вас есть /media/sf_sharedи вы не можете установить туда символические ссылки, что означает, что вы не можете установить npm,
/media/sf_shared/myprojectпотому что некоторые модули используют символические ссылки.
$ mkdir /home/dan/myproject && cd /home/dan/myproject
$ ln -s /media/sf_shared/myproject/package.json (вы можете использовать символическую ссылку в этом направлении, просто не можете создать ее внутри / media / sf_shared)
$ npm install
$ cd /media/sf_shared/myproject
$ NODE_PATH=/home/dan/myproject/node_modules node index.js