【问题标题】:webpack export default works while export object does notwebpack export default 有效,而 export object 无效
【发布时间】:2020-01-17 16:11:00
【问题描述】:

我正在尝试通过 AngularJS 使用实现 webpack。

当我在生产环境中构建和运行应用程序时,会抛出一个错误,说我的家庭控制器是未知的。好吧,这取决于我如何导出我的 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']
      }
   }]
}

这可能是 webpack 的错误还是我的规则有问题?

编辑。

export default 也不起作用。仅当我在与我的模块相同的文件中声明该类时才有效。

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

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

【问题讨论】:

  • “不起作用”是什么意思?错误信息?
  • @AluanHaddad 这似乎不是这里的问题,看看 OP 发布的代码:使用带有命名类导出的卷曲,默认导出版本没有卷曲。
  • @JaredSmith 你是对的,我没有仔细阅读它。这可能是 ESM CJS 问题
  • @JaredSmith 这是我的错误,我将编辑帖子。 export default 要么不起作用。错误只是 angularJS 说它找不到我的班级的提供者。
  • @JaredSmith 如果您想查看错误:Unknown provider: eProvider <- e <- HomeController

标签: javascript angularjs class webpack


【解决方案1】:

我发现了问题。

我忘记了控制器类中的“注释”“ngInject”;

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

当我使用webpack-dev-server 时,它可以在没有“ngInject”的情况下工作,这很奇怪。无论如何它应该抛出一个错误。

这也是我的错误,因为我没有准确说明我使用的是依赖项。在我的控制器中。

感谢您的帮助。

【讨论】:

    猜你喜欢
    • 2016-01-14
    • 1970-01-01
    • 2017-01-09
    • 2016-02-10
    • 2018-11-29
    • 1970-01-01
    • 2018-04-11
    相关资源
    最近更新 更多