Javascript 网页包导出默认值有效,而导出对象无效
我试图通过AngularJS使用实现webpack 在生产环境中构建和运行应用程序时,会抛出一个错误,指出我的主控制器未知。这取决于我如何导出我的Javascript 网页包导出默认值有效,而导出对象无效,javascript,angularjs,class,webpack,Javascript,Angularjs,Class,Webpack,我试图通过AngularJS使用实现webpack 在生产环境中构建和运行应用程序时,会抛出一个错误,指出我的主控制器未知。这取决于我如何导出我的HomeController类 下面的示例不起作用 //home.controller.js 导出类HomeController{ 构造函数(){ this.title='Home'; } } //index.js 从“./home.controller.js”导入{HomeController}; 角度.module('home',[]).contr
HomeController
类
下面的示例不起作用
//home.controller.js
导出类HomeController{
构造函数(){
this.title='Home';
}
}
//index.js
从“./home.controller.js”导入{HomeController};
角度.module('home',[]).controller('HomeController',HomeController);
下面的例子很有效
//home.controller.js
导出默认类HomeController{
构造函数(){
this.title='Home';
}
}
//index.js
从“/home.controller.js”导入HomeController;
角度.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']
}
}]
}
这可能是网页上的错误,还是我的规则有问题
编辑
导出默认值
也不起作用。仅当我在与模块相同的文件中声明类时,它才起作用
class HomeController {
constructor() {
this.title = 'Home';
}
}
angular.module('home', []).controller('HomeController', HomeController);
我发现了问题
我忘记了控制器类中的“注释”“ngInject”
class HomeController {
constructor($timeout) {
"ngInject"; // <- this is the line I forgot.
this.title = 'Home';
}
}
class家庭控制器{
构造函数($timeout){
“不工作”;//你说“不工作”是什么意思?错误消息?@AluanHaddad这似乎不是问题所在查看OP发布的代码:在命名类导出中使用卷发,在默认导出版本中不使用卷发。@JaredSmith你是对的,我没有仔细阅读它。这可能是ESM的问题then@JaredSmith这是我的错误,我会编辑这篇文章导出默认值
不起作用。错误只是angularJS说它找不到我的类的提供程序。@JaredSmith如果您想看到错误:未知提供程序:eProvider