npm,避免不使用.npmignore发布src目录

时间:2019-03-07 10:41:41

标签: npm npm-publish

npm publish 命令创建一个tarball(带有// ... _initPlatformState() async { bool initialized = await TrueTime.init(); setState(() { _initialized = initialized; }); _updateCurrentTime(); } // ... 目录)并将其发布到注册表。

有没有一种方法可以避免使用.npmignore来排除src目录?

1 个答案:

答案 0 :(得分:1)

npm没有提供其他内置功能来实现此目的,因此需要自定义解决方案。

如果您真的不想使用.npmignore来将src目录保留在已发布的程序包之外,请考虑在{中使用prepost钩子{3}}。

相关的钩子是:

  
      
  • prepublishOnly:在准备和打包软件包之前运行,仅在npm publish上运行...

  •   
  • postpublish:在程序包发布后运行。

  •   

对于* nix平台

  1. 在您的 package.json prepublishOnly部分中添加一个scripts脚本,以将src目录移动到项目之外的其他位置发布之前的目录。

  2. 此外,添加一个postpublish脚本,以在发布完成后将src目录移回到项目目录。

  3. 运行npm publish(按照常规操作)以发布您的软件包。

例如:

package.json

...
"scripts": {
  "prepublishOnly": "mv src/ ../",
  "postpublish": "mv ../src .",
  ...
},
...

注意:您需要确保选择的路径位置上没有其他src文件夹/目录,以通过{ {1}}脚本。

跨平台:

对于跨平台解决方案,请考虑使用npm scripts。该软件包包括一个可移植的src命令。在这种情况下,请改为配置prepublishmv脚本,如下所示:

package.json

prepublish