我认为这可能是exec
插件的致命缺陷。
E2BIG
表示execSync
调用的参数过多。 我很确定它所谈论的参数只是我们通过环境变量( $ARG0
)传入的所有钩子信息。
我不确定这是否是我们甚至可以解决的问题。 可能必须记录此限制,甚至可能添加一个选项来放弃传递上下文信息。
一个解决方案可能是将 args 存储在磁盘上的某个地方,并让命令从那里提取而不是 env var。 但这对插件来说是一个非常大的突破性变化
解锁你这个插件做同样的事情
const { SEMVER, execPromise, getCurrentBranch } = require("@auto-it/core");
module.exports = class NextCherryPickPlugin {
constructor() {
this.name = "update docs";
}
/**
* Setup the plugin
*
* <strong i="7">@param</strong> {import('@auto-canary/core').default} auto
*/
apply(auto) {
auto.hooks.beforeCommitChangelog.tapPromise(this.name, async (config) => {
await execPromise("yarn", ["lint:doc:fix"]);
await execPromise("git", ["add", "."]);
});
}
};
如果您能找到 E2BIG 的解决方案,那就太棒了! (或其他任何看到此问题的人)
我肯定会考虑的,应该有办法解决它。 谢谢!
我在 execSpawn args 列表中看到我们在自动上下文之上完全传递process.env
,也许我们添加的选项可以指定仅传递特定于自动的环境变量?
我(一个感兴趣的旁观者)全心全意支持“将参数存储在文件中”的解决方案。 是的,这是一个重大变化,但这是您需要的重大变化。
@hipstersmoothie
解锁你这个插件做同样的事情
需要明确的是,要使用它,我只需将它保存在我的(非 Node/NPM/TypeScript)存储库中并在我的配置文件中设置"plugins": ["path/to/file"]
,或者还有更多内容吗?
最有用的评论
一个解决方案可能是将 args 存储在磁盘上的某个地方,并让命令从那里提取而不是 env var。 但这对插件来说是一个非常大的突破性变化
解锁你这个插件做同样的事情