0

为了部署一个用 NodeJS 编写的 dockerized 服务,我需要在一个专用文件夹中提供它的插件。结构应如下所示:

# 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

但是,当我尝试使用它安装它时,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

npm install以某种方式处理这个吗?如果不能,我可以只mv将目录放在我需要它们的位置而不破坏依赖关系吗?

4

1 回答 1

0

根据npm-install Documentation,您可以使用--global-style它将导致 npm 以与全局 node_modules 文件夹相同的布局将包安装到本地 node_modules 文件夹中。您的包的依赖项以及它们所依赖的所有内容都将在它们的 node_modules 文件夹中展开。

您无法使用 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
于 2019-03-22T16:31:10.607 回答