如何使用循环多次生成 JHipster 源文件?
How to generate JHipster source files multiple times using a loop?
在 generator-jhipster 仓库中,具体来说 files.js in ../generators/server/files.js,它会根据某些条件生成 java 源文件和目录。
例如:
{
condition: generator => generator.databaseType === 'cassandra',
path: SERVER_MAIN_SRC_DIR,
templates: [
{
file: 'package/config/cassandra/CassandraConfiguration.java',
renameTo: generator => `${generator.javaDir}config/cassandra/CassandraConfiguration.java`
}
]
}
这将获取 package/config/cassandra 目录中的模板文件 CassandraConfiguration.java.ejs 并在 运行 成功连接 jhipster 应用程序后生成 java 源文件 CassandraConfiguration.java .
我的问题:是否可以在此模板中生成多个 CassandraConfiguration.java 文件(假设具有不同的名称,例如:CassandraConfiguration0.java、CassandraConfiguration1.java 等...)一个 "LOOP"?我知道我可以 运行 使用 make 目录 (mkdirp) 进行循环,但我不确定如何将它应用于制作文件,因为它不允许我在模板中创建循环:[].
这可能吗?(我不熟悉yeoman的语法):
{
for(var i = 0; i < 3; i++) {
condition: generator => generator.databaseType === 'cassandra',
path: SERVER_MAIN_SRC_DIR,
templates: [
{
file: 'package/config/cassandra/CassandraConfiguration.java',
renameTo: generator => `${generator.javaDir}config/cassandra/CassandraConfiguration[i].java`
}
]
}
}
这应该分别生成:CassandraConfiguration0.java、CassandraConfiguration1.java 和 CassandraConfiguration2.java。
您的方法是错误的,因为您试图在声明性对象 (serverFiles) 中使用命令式样式。
您应该创建一个循环来将条目添加到 serverFiles
数组。
for(let i = 0; i < 3; i++) {
let entry = {
condition: generator => generator.databaseType === 'cassandra',
path: SERVER_MAIN_SRC_DIR,
templates: [
{
file: 'package/config/cassandra/CassandraConfiguration.java',
renameTo: generator => `${generator.javaDir}config/cassandra/CassandraConfiguration${i}.java`
}
]
};
serverFiles.db.push(entry);
}
在 generator-jhipster 仓库中,具体来说 files.js in ../generators/server/files.js,它会根据某些条件生成 java 源文件和目录。
例如:
{
condition: generator => generator.databaseType === 'cassandra',
path: SERVER_MAIN_SRC_DIR,
templates: [
{
file: 'package/config/cassandra/CassandraConfiguration.java',
renameTo: generator => `${generator.javaDir}config/cassandra/CassandraConfiguration.java`
}
]
}
这将获取 package/config/cassandra 目录中的模板文件 CassandraConfiguration.java.ejs 并在 运行 成功连接 jhipster 应用程序后生成 java 源文件 CassandraConfiguration.java .
我的问题:是否可以在此模板中生成多个 CassandraConfiguration.java 文件(假设具有不同的名称,例如:CassandraConfiguration0.java、CassandraConfiguration1.java 等...)一个 "LOOP"?我知道我可以 运行 使用 make 目录 (mkdirp) 进行循环,但我不确定如何将它应用于制作文件,因为它不允许我在模板中创建循环:[].
这可能吗?(我不熟悉yeoman的语法):
{
for(var i = 0; i < 3; i++) {
condition: generator => generator.databaseType === 'cassandra',
path: SERVER_MAIN_SRC_DIR,
templates: [
{
file: 'package/config/cassandra/CassandraConfiguration.java',
renameTo: generator => `${generator.javaDir}config/cassandra/CassandraConfiguration[i].java`
}
]
}
}
这应该分别生成:CassandraConfiguration0.java、CassandraConfiguration1.java 和 CassandraConfiguration2.java。
您的方法是错误的,因为您试图在声明性对象 (serverFiles) 中使用命令式样式。
您应该创建一个循环来将条目添加到 serverFiles
数组。
for(let i = 0; i < 3; i++) {
let entry = {
condition: generator => generator.databaseType === 'cassandra',
path: SERVER_MAIN_SRC_DIR,
templates: [
{
file: 'package/config/cassandra/CassandraConfiguration.java',
renameTo: generator => `${generator.javaDir}config/cassandra/CassandraConfiguration${i}.java`
}
]
};
serverFiles.db.push(entry);
}