[英]How to locally install node module outside of node_modules directory?
In order to deploy a dockerized service written in NodeJS I need to provide its plugins in a dedicated folder. 为了部署用NodeJS编写的dockerized服务,我需要在专用文件夹中提供它的插件。 The structure should look like this: 结构应如下所示:
# plugin
/verdaccio/plugins/verdaccio-ldap
/verdaccio/plugins/verdaccio-ldap/package.json
/verdaccio/plugins/verdaccio-ldap/CHANGELOG.md
/verdaccio/plugins/verdaccio-ldap/index.js
/verdaccio/plugins/verdaccio-ldap/LICENSE
/verdaccio/plugins/verdaccio-ldap/README.md
# dependencies
/verdaccio/plugins/verdaccio-ldap/node_modules/.bin/ldapjs-add
/verdaccio/plugins/verdaccio-ldap/node_modules/.bin/ldapjs-compare
/verdaccio/plugins/verdaccio-ldap/node_modules/.bin/ldapjs-delete
/verdaccio/plugins/verdaccio-ldap/node_modules/.bin/ldapjs-modify
/verdaccio/plugins/verdaccio-ldap/node_modules/.bin/ldapjs-search
/verdaccio/plugins/verdaccio-ldap/node_modules/@types/ldapjs
/verdaccio/plugins/verdaccio-ldap/node_modules/@types/ldapjs/LICENSE
/verdaccio/plugins/verdaccio-ldap/node_modules/@types/ldapjs/README.md
/verdaccio/plugins/verdaccio-ldap/node_modules/@types/ldapjs/index.d.ts
/verdaccio/plugins/verdaccio-ldap/node_modules/@types/ldapjs/package.json
# rest ommited
However when I attempt to install it using npm install verdaccio-ldap --prefix /verdaccio/plugins
it looks like this: 但是,当我尝试使用npm install verdaccio-ldap --prefix /verdaccio/plugins
它时,它看起来像这样:
# plugin
/verdaccio/plugins/node_modules/verdaccio-ldap
/verdaccio/plugins/node_modules/verdaccio-ldap/package.json
/verdaccio/plugins/node_modules/verdaccio-ldap/CHANGELOG.md
/verdaccio/plugins/node_modules/verdaccio-ldap/index.js
/verdaccio/plugins/node_modules/verdaccio-ldap/LICENSE
/verdaccio/plugins/node_modules/verdaccio-ldap/README.md
# dependencies
/verdaccio/plugins/node_modules/.bin/ldapjs-add
/verdaccio/plugins/node_modules/.bin/ldapjs-compare
/verdaccio/plugins/node_modules/.bin/ldapjs-delete
/verdaccio/plugins/node_modules/.bin/ldapjs-modify
/verdaccio/plugins/node_modules/.bin/ldapjs-search
/verdaccio/plugins/node_modules/@types/ldapjs
/verdaccio/plugins/node_modules/@types/ldapjs/LICENSE
/verdaccio/plugins/node_modules/@types/ldapjs/README.md
/verdaccio/plugins/node_modules/@types/ldapjs/index.d.ts
/verdaccio/plugins/node_modules/@types/ldapjs/package.json
# rest omitted
Can npm install
handle this somehow? npm install
可以以某种方式处理吗? If not can I just mv
the directories to where I need them without breaking dependencies? 如果没有,我可以将目录mv
到我需要的地方而不破坏依赖关系吗?
As per npm-install Documentation , you can use --global-style
which will cause npm to install the package into your local node_modules folder with the same layout it uses with the global node_modules folder. 根据npm-install文档 ,您可以使用--global-style
,这将导致npm将软件包安装到本地node_modules文件夹中,其文件格式与全局node_modules文件夹相同。 The dependencies of your package and everything they depend on will be flattened in their node_modules folder. 您的包及其依赖的所有内容的依赖关系将在其node_modules文件夹中展平。
You cannot prevent the creation of node_modules with npm-install, but the layout will look like this: 您无法阻止使用npm-install创建node_modules,但布局将如下所示:
# plugin
/verdaccio/plugins/node_modules/verdaccio-ldap
/verdaccio/plugins/node_modules/verdaccio-ldap/package.json
/verdaccio/plugins/node_modules/verdaccio-ldap/CHANGELOG.md
/verdaccio/plugins/node_modules/verdaccio-ldap/index.js
/verdaccio/plugins/node_modules/verdaccio-ldap/LICENSE
/verdaccio/plugins/node_modules/verdaccio-ldap/README.md
# dependencies
/verdaccio/plugins/node_modules/verdaccio-ldap/node_modules/.bin/ldapjs-add
/verdaccio/plugins/node_modules/verdaccio-ldap/node_modules/.bin/ldapjs-compare
/verdaccio/plugins/node_modules/verdaccio-ldap/node_modules/.bin/ldapjs-delete
/verdaccio/plugins/node_modules/verdaccio-ldap/node_modules/.bin/ldapjs-modify
/verdaccio/plugins/node_modules/verdaccio-ldap/node_modules/.bin/ldapjs-search
/verdaccio/plugins/node_modules/verdaccio-ldap/node_modules/@types/ldapjs
/verdaccio/plugins/node_modules/verdaccio-ldap/node_modules/@types/ldapjs/LICENSE
/verdaccio/plugins/node_modules/verdaccio-ldap/node_modules/@types/ldapjs/README.md
/verdaccio/plugins/node_modules/verdaccio-ldap/node_modules/@types/ldapjs/index.d.ts
/verdaccio/plugins/node_modules/verdaccio-ldap/node_modules/@types/ldapjs/package.json
# rest ommited
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.