adr*_*gil 3 node.js gruntjs yeoman grunt-usemin
我正在使用yeoman和grunt构建我的项目和grunt-css插件,使用'cssmin'而不是内置grunt.js的'css'
<!-- build:css styles/styles.css -->
<link rel="stylesheet" href="styles/main.css"/>
<!-- endbuild -->
<!-- build:js scripts/scripts.js -->
<script src="scripts/vendor/jquery.min.js"></script>
<script src="scripts/vendor/handlebars-1.0.0.beta.6.js"></script>
<script src="scripts/vendor/ember-1.0.pre.min.js"></script>
<script src="scripts/main.js"></script>
<script src="scripts/routes/app-router.js"></script>
<script src="scripts/store.js"></script>
<script src="scripts/controllers/application-controller.js"></script>
<script src="scripts/models/application-model.js"></script>
<script src="scripts/views/application-view.js"></script>
<!-- endbuild -->
Run Code Online (Sandbox Code Playgroud)
rev: {
js: 'dist/scripts/**/*.js', // scripts/**/*.js
css: 'dist/styles/**/*.css', // styles/**/*.css
img: 'dist/images/**' // images/**
},
'usemin-handler': {
html: 'index.html'
},
usemin: {
html: ['dist/**/*.html'], // **/*.html
css: ['dist/**/*.css'] // **/*.css
},
rjs: {
// no minification, is done by the min task
optimize: 'none',
baseUrl: './scripts',
wrap: true
},
cssmin: {
dist: {
src: [
'app/styles/**/*.css'
],
dest: 'dist/styles/styles.css'
}
},
concat: {
dist: {
src: [
'app/scripts/**/*.js'
],
dest: 'dist/scripts/scripts.js',
separator: '/**********/\n'
}
},
min: {
dist: {
src: [
'dist/scripts/scripts.js'
],
dest: 'dist/scripts/scripts.js',
separator: '/**********/\n'
}
}
Run Code Online (Sandbox Code Playgroud)
然后构建项目结构是:
dist/
|__scripts/
|____04216377.scripts.js
|__styles/
|____d41d8cd9.styles.css
|__index.html
Run Code Online (Sandbox Code Playgroud)
<link rel="stylesheet" href="styles/styles.css"/?>
<script src="scripts/04216377.scripts.js"></script>
Run Code Online (Sandbox Code Playgroud)
如你所见,除了重命名index.html中应该是'styles/d41d8cd9.styles.css的修改后的样式之外,一切都还行,任何人都知道为什么?问号是'?' 在线正常???
注意:有关详细信息,请在我的控制台中输出(无错误)运行"rev:js"(rev)task dist/scripts/scripts.js --- 04216377.scripts.js
运行"rev:css"(rev)任务dist/styles/styles.css --- d41d8cd9.styles.css
运行"rev:img"(rev)任务
运行"usemin:html"(usemin)任务
usemin:html - dist/index.html scripts/scripts.js
was <script src="scripts/scripts.js"></script>
now <script src="scripts/04216377.scripts.js"></script>
Run Code Online (Sandbox Code Playgroud)
运行"usemin:css"(usemin)任务
usemin:css - dist/styles/d41d8cd9.styles.css
并没有重命名!非常感谢!
我发现了这个问题.我有Yeoman 0.94版本,需要修复usemin任务.该?字符的<link>是一个正则表达式错误.您应该重写此表达式,因为css重命名失败.在https://github.com/yeoman/yeoman/issues/586找到了正确的解决方法
更换
content.replace(block, indent + '<link rel="stylesheet" href="' + target + '"\/?>');
Run Code Online (Sandbox Code Playgroud)
同
content.replace(block, indent + '<link rel="stylesheet" href="' + target + '"/>');
Run Code Online (Sandbox Code Playgroud)
如果应用更改,则此问题已解决.注意:usemin.js在/usr/local/lib/node_modules/yeoman/tasks(在OSX上)应用补丁
| 归档时间: |
|
| 查看次数: |
2583 次 |
| 最近记录: |