npm publish
命令创建一个tarball(带有// ...
_initPlatformState() async {
bool initialized = await TrueTime.init();
setState(() {
_initialized = initialized;
});
_updateCurrentTime();
}
// ...
目录)并将其发布到注册表。
有没有一种方法可以避免使用.npmignore
来排除src
目录?
答案 0 :(得分:1)
npm没有提供其他内置功能来实现此目的,因此需要自定义解决方案。
如果您真的不想使用.npmignore
来将src
目录保留在已发布的程序包之外,请考虑在{中使用pre
和post
钩子{3}}。
相关的钩子是:
prepublishOnly
:在准备和打包软件包之前运行,仅在npm publish
上运行...
postpublish
:在程序包发布后运行。
在您的 package.json 的prepublishOnly
部分中添加一个scripts
脚本,以将src
目录移动到项目之外的其他位置发布之前的目录。
此外,添加一个postpublish
脚本,以在发布完成后将src
目录移回到项目目录。
运行npm publish
(按照常规操作)以发布您的软件包。
例如:
package.json
...
"scripts": {
"prepublishOnly": "mv src/ ../",
"postpublish": "mv ../src .",
...
},
...
注意:您需要确保选择的路径位置上没有其他src
文件夹/目录,以通过{ {1}}脚本。
对于跨平台解决方案,请考虑使用npm scripts。该软件包包括一个可移植的src
命令。在这种情况下,请改为配置prepublish
和mv
脚本,如下所示:
package.json
prepublish