grunt 将文件树注入 javascript 对象
grunt inject file tree into javascript object
有没有办法使用 Grunt 将文件树的结构读取到 JSON 对象中,然后将其注入到 javascript 文件中。
例如,假设我的项目有一个结构文件...
Assets
├╴docs
│ └╴doc1.txt
│ └╴doc2.txt
│
├╴effects
│ └╴sound.mp3
我可以注入一些 .js 文件。
Assets = {
docs : ['doc1.txt', 'doc2.txt.'],
effects: [sound.mp3]
}
其中初始资产等于一些 while 卡,例如“@@injectHere”。
好的。我认为这是一个两步过程。
首先,我用grunt-tree模块构建了一个JSON表示的文件系统。我将 JSON 文件保存到 .tmp 文件夹中的临时文件。
tree: {
options: {
},
soundFileTree: {
files: [
{
src: ['<%= yeoman.client %>/assets/audio/'],
dest: '.tmp/soundTree.json',
}
],
},
},
其次,我将JSON文件注入我的最终目的地。
我使用 grunt-injector 模块。我只是在 transform() 函数选项中使用了 require() 来从 .tmp 文件夹中读取 JSON 。如果你 require() 一个 JSON 文件,它将 return 一个 JSON 对象。所以我的 grunt 文件看起来像这样...
injector: {
// Inject JSON file into client and server files
soundFileTree: {
options: {
transform: function(filePath) {
var soundTreeJSONString = require(filePath); //you might have to adjust the files path
return JSON.stringify(soundTreeJSONString);
},
starttag: '/* injector:soundFileTree */',
endtag: '/* endinjector */',
},
files: {
'<%= yeoman.client %>/treeTarget.js': ['.tmp/soundTree.json'],
},
},
...
}
我的目标文件看起来像这样(不是实际的文件夹和文件与我的问题不同。
var myVar=
/* injector:soundFileTree */
{"boxing":{"bell":"boxing/bell.wav","warning":"boxing/warning.wav"}}
/* endinjector */
;
有没有办法使用 Grunt 将文件树的结构读取到 JSON 对象中,然后将其注入到 javascript 文件中。
例如,假设我的项目有一个结构文件...
Assets
├╴docs
│ └╴doc1.txt
│ └╴doc2.txt
│
├╴effects
│ └╴sound.mp3
我可以注入一些 .js 文件。
Assets = {
docs : ['doc1.txt', 'doc2.txt.'],
effects: [sound.mp3]
}
其中初始资产等于一些 while 卡,例如“@@injectHere”。
好的。我认为这是一个两步过程。
首先,我用grunt-tree模块构建了一个JSON表示的文件系统。我将 JSON 文件保存到 .tmp 文件夹中的临时文件。
tree: {
options: {
},
soundFileTree: {
files: [
{
src: ['<%= yeoman.client %>/assets/audio/'],
dest: '.tmp/soundTree.json',
}
],
},
},
其次,我将JSON文件注入我的最终目的地。
我使用 grunt-injector 模块。我只是在 transform() 函数选项中使用了 require() 来从 .tmp 文件夹中读取 JSON 。如果你 require() 一个 JSON 文件,它将 return 一个 JSON 对象。所以我的 grunt 文件看起来像这样...
injector: {
// Inject JSON file into client and server files
soundFileTree: {
options: {
transform: function(filePath) {
var soundTreeJSONString = require(filePath); //you might have to adjust the files path
return JSON.stringify(soundTreeJSONString);
},
starttag: '/* injector:soundFileTree */',
endtag: '/* endinjector */',
},
files: {
'<%= yeoman.client %>/treeTarget.js': ['.tmp/soundTree.json'],
},
},
...
}
我的目标文件看起来像这样(不是实际的文件夹和文件与我的问题不同。
var myVar=
/* injector:soundFileTree */
{"boxing":{"bell":"boxing/bell.wav","warning":"boxing/warning.wav"}}
/* endinjector */
;