Plop.js模板文件在目标文件夹中添加根目录



我遇到了一个问题,不确定是否是我自己。我在一个项目中使用Plop.js为新包快速编码生成样板文件(bp(。

我有4个不同的模板文件夹,当用户输入generate命令时,它们会扑通映射。系统会提示用户要创建的包类型列表:

choices: ['react', 'node', 'browser', 'isomorphic'],

根据用户对提示的响应,plop选择要从中提取模板文件的文件夹。

模板文件夹结构如下:

plop-template/
- react/
- node/
- browser/
- isomorphic/

templateFiles:属性根据用户响应正确识别和创建bp。

templateFiles: 'plop_templates/{{project-type}}/**/*/',

我遇到的问题是项目类型被添加到文件目标路径

所以我想发生的是

/project-name/ ... boiler plate created

但现在的情况是:

/project-name/project-type/ ... boiler plate created

那么,是否可以从目标路径中删除/project-type/

Plopfile.js(v."plop":"3.1.1"(:

const findEtensionFile = require("../lib/file-extention-locator");
module.exports = function (plop) {
plop.getDestBasePath;
plop.setGenerator("component", {
prompts: [
{
type: "input",
name: "project-name",
message: "What's the name your project? ",
},
{
type: "list",
name: "project-type",
message: "Project Type:",
choices: ["react", "node", "browser", "isomorphic"],
},
],
actions: function (data) {
var actions = [];
actions.push({
type: "addMany",
globOptions: { dot: true },
destination: "../../../{{project-name}}",
base: "/",
templateFiles: "plop_templates/{{project-type}}/**/*/",
});
return actions;
},
});
};

我尝试过的:筛选器:属性。。。这可以用来修改文件内容,似乎只会影响base:属性(字符串(。。文档似乎表明,这是一条我可以过滤掉但找不到不破坏BP创建的值的路径。

如有任何帮助,我们将不胜感激。

发现错误是我的。看起来base:value必须与templateFiles的整个值匹配。在这种情况下:

base: 'plop_templates/{{project-type}}',
templateFiles: "plop_templates/{{project-type}}/**/*/",

即使/plop_templates/文件夹没有在路径中创建。

最新更新