Intereting Posts

Npm运行并行脚本无法正常工作

脚本的目标是保持重试连接到服务器端点,并在可能时生成graphql模式。

如果我在另一个命令提示符下运行脚本,脚本工作正常。 这只是我想在一个命令提示符下运行一个命令。

相反,我得到的错误:

(节点:4212)MaxListenersExceededWarning:检测到可能的EventEmitter内存泄漏。 添加了11个结束监听器。 使用emitter.setMaxListeners()来增加限制

这对我来说没有任何意义,因为听众应该只设置一次,而不是11次。

dotnet-run只运行asp.net服务器。 显然,这需要一些时间来启动,这就是为什么我写这个脚本,以保持重试到服务器。

 "start": "npm-run-all --parallel dotnet-run get-schema:dev", "get-schema:dev": "node scripts/getSchema.js --url http://localhost:8080/graphql" 

我正在使用npm-run-all npm软件包

getSchema脚本:

 require('isomorphic-fetch'); const getArgs = require('get-args'); const FormData = require('form-data'); const fs = require('fs'); const { buildClientSchema, introspectionQuery, printSchema, } = require('graphql/utilities'); const path = require('path'); const schemaPath = path.join(__dirname, '../schema/schema'); const formData = new FormData(); formData.append('query', introspectionQuery); const args = getArgs(); const url = args.options.url; let intervalId = null; // Save JSON of full schema introspection for Babel Relay Plugin to use const setSchema = () => { fetch(url, { method: 'post', body: formData, }) .then((res) => { if (res.ok) { return res.json(); } throw new Error(res.statusText); }) .then((schemaJSON) => { fs.writeFileSync( `${schemaPath}.json`, JSON.stringify(schemaJSON, null, 2), ); // Save user readable type system shorthand of schema const graphQLSchema = buildClientSchema(schemaJSON.data); fs.writeFileSync( `${schemaPath}.graphql`, printSchema(graphQLSchema), ); clearInterval(intervalId); console.log('Successfuly updated schema.'); }) .catch((error) => { console.log(error); }); }; intervalId = setInterval(setSchema, 1000); 

经过一段时间的脚本运行,即使服务器启动,我得到错误:

FetchError:请求到http:// localhost:8080 / graphql失败,原因:套接字挂断

Solutions Collecting From Web of "Npm运行并行脚本无法正常工作"