我正在研究一个基于神奇的webapp生成器的yeoman生成器,但处理的东西有点不同。我想要实现的一件事是将require.js文件作为一个文件。这意味着而不是......
<script data-main="scripts/main" src="bower_components/requirejs/require.js"></script>
......我想要这个:
<script scr="scripts/main"></script>
从require.js开始,这几乎没有用。
require.config({
paths: {
// ...
requireLib: '../bower_components/requirejs/require'
}
});
require(['...', 'requireLib'], function (..., requireLib) {
// ...
});
我被困在Gruntfile.js部分。修改脚本标记的最佳方法是什么,例如将data-main的值作为src和data-main的新值删除?
答案 0 :(得分:0)
我自己解决了这个问题。去找grunt-regex-replace:
npm install grunt-regex-replace --save-dev
在Gruntfile.js中执行此操作:
module.exports = function (grunt) {
// ...
require('load-grunt-tasks')(grunt);
grunt.initConfig({
// ...
'regex-replace': {
dist: {
src: ['<%= yeoman.dist %>/index.html'],
actions: [
{
name: 'requirejs-onefile',
search: '<script data-main=".*" src="bower_components/requirejs/require.js"></script>',
replace: function(match){
var regex = /scripts\/.*main/;
var result = regex.exec(match);
return '<script src="' + result[0] + '.js"></script>';
},
flags: 'g'
}
]
}
}
});
}
运行此...
grunt regex-replace
......你已经完成了。这很好地完成了工作......
干杯