Метеор не может найти модуль SyncedCron

Я выполнил команду:

метеор добавить перколят:synced-cron

после того, как я добавлю на свой сервер / main.ts

SyncedCron.add({
    name: 'Crunch some important numbers for the marketing department',
    schedule: function(parser) {
    // parser is a later.parse object
    return parser.text('every 0.5 minutes');
  },
job: function() {
    return 1;
  }
});
SyncedCron.start();

Когда я запускаю сервер, он говорит

Не удается найти имя SyncedCron

Я попытался импортировать "synced-cron" также не работает. Моя версия Meteor Meteor 1.4.2.3 Может кто-нибудь помочь, пожалуйста?

4 ответа

Для решения этой проблемы в первую очередь необходимо импортировать эту строку

import {SyncedCron} from 'meteor/percolate:synced-cron';

после импорта этой строки вы столкнетесь с другой ошибкой Cannot find module 'meteor/percolate:synced-cron
Эта ошибка возникает потому, что у нас нет определения машинописи для percolate:synced-cron пакет в нашем файле typings.d.ts. Поэтому, чтобы устранить эту ошибку, вы должны создать собственное определение машинописи для percolate:synced-cron. просто добавьте эти строки в ваш файл typings.d.ts или в определение метеора в папке @typings.

declare module "meteor/percolate:synced-cron"{
  export module SyncedCron { 
    function add ({ name: string, schedule:(parser: any): any, job:(): any })
    function start(): any {}
  }
}

теперь вы не получите никакой ошибки, связанной с percolate:synced-cron.

Амит.

Извините за поздний ответ.

я вставил ваш код в мои typings.d.ts, мой я все еще получаю server/main.ts (13, 3): не могу найти имя 'SyncedCron', ниже мой файл typings.d.ts.

/// <reference types="zone.js" />
/// <reference types="meteor-typings" />
/// <reference types="@types/underscore" />
/// <reference types="@types/node" />

declare module '*.html' {
  const template: string;
  export default template;
}

declare module '*.scss' {
  const style: string;
  export default style;
}

declare module '*.less' {
  const style: string;
  export default style;
}

declare module '*.css' {
  const style: string;
  export default style;
}

declare module '*.sass' {
  const style: string;
  export default style;
}

declare module 'meteor/tmeasday:publish-counts' {
  import { Mongo } from 'meteor/mongo';

  interface CountsObject {
    get(publicationName: string): number;
    publish(context: any, publicationName: string, cursor: Mongo.Cursor, options: any): number;
  }

  export const Counts: CountsObject;
}

declare module 'meteor/accounts-base' {
  module Accounts {
    function requestPhoneVerification(phoneNumber: string, callback?: Function): void;
    function verifyPhone(phoneNumber: string, code: string, callback?: Function): void;
  }
}

declare module "meteor/percolate:synced-cron"{
  export module SyncedCron { 
    function add ({ name: string, schedule:(parser: any): any, job:(): any })
    function start(): any {}
  }
}

Действительно ли syched-cron необходим для импорта на ваш server.js? вы можете показать свой сервер /main.ts?

Вот код

import { Meteor } from 'meteor/meteor';
import {SyncedCron} from 'meteor/percolate:synced-cron';

Meteor.startup(() => {
  SyncedCron.add({
    name: 'Crunch some important numbers for the marketing department',
    schedule: function(parser) {
      // parser is a later.parse object
      return parser.text('every 0.25 minutes');
    },
    job: function() {
      return console.log(1234);
    }
  });
});
Другие вопросы по тегам