参数& # 39;HomeCtrl& # 39;不是一个函数,在使用Meteor-Up部署后未定义

Argument 'HomeCtrl' is not a function, got undefined after deploying with Meteor-Up

本文关键字:未定义 函数 部署 Meteor-Up HomeCtrl 参数 一个      更新时间:2023-09-26

我正在使用angular模板创建一个流星应用程序,并且刚刚使用meteor - up将其部署到我的服务器上。它在我的本地主机上运行良好,但在服务器上,我收到以下内容:

Argument 'HomeCtrl' is not a function, got undefined

我的代码是(用…代替了一些):

homeCtrl.js

import angular from 'angular';
import angularMeteor from 'angular-meteor';
import { Controller } from 'angular-ecmascript/module-helpers'; 
import { Projects } from '/lib/collections';
import faker from 'faker';
export default class HomeCtrl extends Controller {
    constructor() {
        super(...arguments);
        this.helpers({
            ...
        });
    }
...
}

app.js

import angularMeteor from 'angular-meteor';
import 'angular-sanitize';
import 'angular-ui-router';
import angular from 'angular';
import Loader from 'angular-ecmascript/module-loader';
import HomeCtrl from '../controllers/homeCtrl'
import WizardCtrl from '../controllers/wizardCtrl'
import RoutesConfig from '../routes';
const App = 'appName';
angular.module(App, [angularMeteor, 'ui.router']);
new Loader(App)
    .load(HomeCtrl)
    .load(WizardCtrl)
    .load(RoutesConfig);

routes.js

import { Config } from 'angular-ecmascript/module-helpers';
export default class RoutesConfig extends Config {
  configure() {
    this.$stateProvider
      .state('home', {
        url: '/',
        templateUrl: 'client/templates/home.html',
        controller: 'HomeCtrl as home'
      })
     ...
    this.$urlRouterProvider.otherwise('/');
  }
}
RoutesConfig.$inject = ['$stateProvider', '$urlRouterProvider'];

mup.js

module.exports = {
  servers: {
    one: {
      host: '...',
      username: '...',
      // pem:
      password: '...'
      // or leave blank for authenticate from ssh-agent
    }
  },
  "setupMongo": false,
  meteor: {
    name: 'app-name',
    path: '../',
    servers: {
      one: {}
    },
    buildOptions: {
      serverOnly: true,
    },
    env: {
      ROOT_URL: '...',
      MONGO_URL: '...'
    },
    dockerImage: 'abernix/meteord:base',
    deployCheckWaitTime: 60
  },
};

是有什么我错过了部署或一些错误的代码?

我最终只是回到使用标准控制器函数,而不是使用ES6类。因此上面的HomeCtrl将变成:

var app = angular.module('home-module', []);
app.controller('homeCtrl', ['$scope', function($scope){
    $scope.helpers({
        ...
    });
    ...
}]);

你仍然需要在app.js中导入它,但是你不需要用加载器加载它