提问者:小点点

为nodejs发行版创建一个zip文件,不需要dev依赖项(捆绑)


我编写了一组函数,我想创建一个包含生产所需的所有东西的zip文件。 所以我想排除用于dev的所有东西(不包括devdependencies中的任何东西)。

问题是,我在谷歌上找到的所有解决方案都不会自动排除开发依赖项和可传递的开发依赖项。 基本上,它们从node_modules和根目录中获取所有内容,并制作一个zip,包括生产中不需要的东西,如单元测试和用于开发的工具。

我看起来像:

  • Scala中的sbt-assembly或sbt-native-packager.
  • Java的Maven阴影插件或Maven汇编插件。
  • Python3 setup.py sdist bdist_wheels in Python.

重要提示:我不想要一个需要手动指定要排除的依赖项列表的解决方案。 我在package.json中有这个信息,方法应该使用这个信息来知道要在zip文件中放什么。


共1个答案

匿名用户

通常,您不想打包任何包依赖项(node_modules目录),因为在安装期间正在编译某些包(npm install)。

如果你还想这么做,我会建议你考虑打包在一个docker图像。

您可以使用.npmignore将文件排除在包之外,并利用npm Pack创建模块的tar.gz,您可以交付该模块(例如,将其发布到npm registry)。

根据您的npm模块的建议,您可能希望利用npx并从GitHub\npm\等执行您的模块。