我在网络应用程序中使用koa2,以便进行学习。我使用webpack和babel-loader配置了开发环境,以便我可以编写es6代码。
我使用sequelize作为ORM,我想加载目录/模型下的所有文件并初始化我的数据库。这是代码
fs
.readdirSync('/Users/zhangfeng/develop/github-ac/models')
.filter((file) => {
return (file.indexOf('.') !== 0) && (file !== 'index.js');
})
.forEach((file) => {
let model = sequelize.import(path.join('/Users/zhangfeng/develop/github-ac/models', file));
models[model.name] = model;
});
因为我运行构建的代码node build/bundle.js
,所以我可以使用绝对路径,这是有效的。如果有更优雅的方式,请告诉我:)
虽然这不是主要问题,但我写了模型inn es6语法,它抛出了unexpected token
之类的错误,因为我在es6中使用了export default
,下面是示例代码。
export default (sequelize, DataTypes) => {
return sequelize.define('user', {
iNumber: {
type: DataTypes.STRING
},
name: {
type: DataTypes.STRING
}
})
}
这意味着models /目录下的文件没有转码,我知道这是因为我没有在任何地方导入它们。现在我必须在es5中使用module.exports = blabla
来使代码正常工作,而这并没有真正解决我的问题。所以我想知道如何使用webpack自动转码它们,或者如何在代码中动态导入它们。