【发布时间】: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