我正在构建一个Electron应用程序(Node.js),它需要gcloud app deploy
从应用程序中生成实时反馈(stdin/stdout/stderr).
我迅速切换child_process
到execa,因为我在Mac OS X上遇到了一些问题,其中child_process缓冲区限制为200kb(并gcloud app deploy
发送一些大块的字符串> 200kb,这会导致命令崩溃).
现在,execa
一切似乎都在OSX上正常工作,但在Windows上却没有.
代码看起来像这样:
let bin = `gcloud${/^win/.test(process.platform) ? '.cmd' : ''}`
//which: https://github.com/npm/node-which
which(bin, (err, fullpath) => {
let proc = execa(fullpath, ['app', 'deploy'], {
cwd: appPath
})
proc.stdout.on('data', data => {
parseDeploy(data.toString())
})
proc.stderr.on('data', data => {
parseDeploy(data.toString())
})
proc.then(() => {
...
}).catch(e => {
...
})
})
Run Code Online (Sandbox Code Playgroud)
此代码在Mac OS X上完美运行,而我在Windows上的结果却不一样
我尝试了很多东西:
windows child-process node.js gcloud google-app-engine-deploy
我正在尝试从OAuth.io获取任何基于Google的提供商的访问权限,但每当我进行身份验证时,我都会获得access_token但没有refresh_token.我已经为access_type选择了离线,但仍然没有快乐.
我已经尝试查看文档以获得解决方案,但它几乎不涉及与刷新令牌相关的任何内容.
我正在将一个电子应用程序从 AngularJS 迁移到 Angular5,并且我在需要加载任意模块及其组件并将主要组件动态渲染到视图的部分中遇到问题(它是一个插件系统)。在我的应用程序中,插件是一个 angular5 模块,其中包含在我的 angular5 应用程序中呈现的组件。
我像这样动态加载组件:
@ViewChild("view", { read: ViewContainerRef })
view: ViewContainerRef;
constructor(
// ...
private compiler: Compiler,
private injector: Injector,
private moduleRef: NgModuleRef<any>
) {}
Run Code Online (Sandbox Code Playgroud)
然后,
const addonModule = addonObject.getModule();
this.compiler
.compileModuleAndAllComponentsAsync(addonModule)
.then(factories => {
const factory = factories.componentFactories.find(
componentFactory =>
addonObject.getViewComponent().name ==
componentFactory.componentType.name
);
if (factory) {
const cmpRef = factory.create(this.injector, [], null, this.moduleRef);
cmpRef.instance.config = {
from: "afd@test.com",
apikey: "dsfkjd"
};
this.view.insert(cmpRef.hostView);
}
});
Run Code Online (Sandbox Code Playgroud)
它工作得很好,但是当我在模板中添加 Material Component 时,它失败并factory.create()
出现以下错误:
模板:
<div>
<button …
Run Code Online (Sandbox Code Playgroud)