假设我必须开发一个 npm 包my-package,它需要由my-project导入和使用。
在开发my-package时,我需要安装和使用来自 npm 的其他包。在my-package开发结束时,我将所有相关文件捆绑在dist目录中。由于我不想将node_modules文件夹中的所有文件作为包的一部分发布,因此我在.gitignore(或.npmignore)中指定排除node_modules文件夹。所以my-package文件夹的最终结构看起来像
my-package
dist
... // all the code of the package to be distributed
node_modules
... // all the node modules
src
... // all source files
package.json
.gitignore
现在我在 npm 存储库上发布my-package,然后使用命令将其导入my-projectnpm i my-package
。
由于这种导入,托管my-project的目录结构类似于
my-project
... // stuff
node_modules
my-package
dist
... // all the code of the package to be distributed
src
... // all source files
package.json
正如预期的那样,在my-package文件夹下没有导入任何node_modules文件夹。
由于我是my-package和my-project的开发人员,因此在开发过程中,我想使用如下命令从本地路径导入my-package
npm -i ../my-package
如果我这样做,我看到的结果是存储在my-package目录下的所有文件和文件夹都复制到my-project的node_modules文件夹下,即不考虑.gitignore(或.npmignore )排除项。最终结果是一个结构,例如
my-project
... // stuff
node_modules
my-package
dist
... // all the code of the package to be distributed
node_modules
... // all stuff imported by my-package
src
... // all source files
package.json
... // any other file under my-package
如果软件包是从npm 存储库安装的,有没有办法从本地路径安装my-package的相关文件?