Экспорт из веб-пакета по умолчанию работает, а объект экспорта - нет - PullRequest
0 голосов
/ 17 января 2020

Я пытаюсь использовать веб-пакет для реализации через AngularJS.

, когда я создаю и запускаю приложение в производственной среде, выдается сообщение о том, что мой домашний контроллер неизвестен. Ну, это зависит от того, как я экспортирую свой HomeController класс.

Пример ниже не работает.

// home.controller.js
export class HomeController {
    constructor() {
        this.title = 'Home';
    }
}

// index.js
import { HomeController } from './home.controller.js';

angular.module('home', []).controller('HomeController', HomeController);

Пример ниже работает.

// home.controller.js
export default class HomeController {
    constructor() {
        this.title = 'Home';
    }
}

// index.js
import HomeController from './home.controller.js';

angular.module('home', []).controller('HomeController', HomeController);

Вот правило, которое я использую для переноса JS

{
   test: /\.js$/,
   exclude: /(node_modules|server.js)/,
   use: [{
      loader: 'babel-loader',
      options: {
        presets: ['@babel/preset-env'],
        plugins: ['@babel/plugin-transform-classes']
      }
   }]
}

Возможно, это ошибка из веб-пакета или что-то не так с моим правилом?

РЕДАКТИРОВАТЬ.

export default тоже не работает. Это работает только тогда, когда я объявляю класс в том же файле, что и мой модуль.

class HomeController {
    constructor() {
        this.title = 'Home';
    }
}

angular.module('home', []).controller('HomeController', HomeController);

1 Ответ

1 голос
/ 20 января 2020

Я обнаружил проблему.

Я забыл "аннотацию" "ngInject" в моем классе контроллера;

class HomeController {
    constructor($timeout) {
        "ngInject"; // <- this is the line I forgot.
        this.title = 'Home';
    }
}

Когда я использовал webpack-dev-server, это работало бы без " ngInject ", что довольно странно. В любом случае это должно привести к ошибке.

Также это была моя ошибка, потому что я не уточнил, что я использую зависимость. В моем контроллере.

Спасибо за помощь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...