node.js - grunt-usemin src 文件为空

标签 node.js gruntjs grunt-usemin

我尝试在我的项目中使用 grunt-usemin 来缩小 JS 和 CSS 文件,但效果不佳。因此,我创建了简单的示例,例如 grunt-usemin 文档中的示例,但这也不起作用。

我的结构很简单:

.
├── Gruntfile.js
├── dist
│   └── js
├── index.html
├── js
│   ├── bar.js
│   └── foo.js
└── package.json

在index.html中,我有以下引用2个JS文件的 block :

<!-- build:js js/optimized.js -->
<script src="/js/foo.js"></script>
<script src="/js/bar.js"></script>
<!-- endbuild -->

我的 Gruntfile.js:

module.exports = function(grunt) {
// Project configuration.
  grunt.initConfig({
    pkg: grunt.file.readJSON('package.json'),
    useminPrepare: {
        html: 'index.html',
        options: {
          dest: 'dist'
        }
    },
    usemin: {
        html: ['index.html']
    },
    filerev: {
      options: {
        algorithm: 'md5',
        length: 8
      },
      js: {
        src: 'js/optimized.js',
        dest: 'js/'
      }
    }
  });

  grunt.loadNpmTasks('grunt-contrib-uglify');
  grunt.loadNpmTasks('grunt-contrib-cssmin');
  grunt.loadNpmTasks('grunt-contrib-concat');
  grunt.loadNpmTasks('grunt-filerev');
  grunt.loadNpmTasks('grunt-usemin');

  // Register tasks
  grunt.registerTask('deploy', ['useminPrepare', 'uglify:generated']);
// grunt.registerTask('deploy', ['useminPrepare', 'uglify:generated', 'usemin']);

};

当我运行 grunt deploy -v 时,我期望 js/optimized.js 将被创建。但我收到此错误:

>> Destination dist/js/optimized.js not written because src files were empty.
>> No files created.

useminPrepare 生成的任务如下所示:

Going through index.html to update the config
Looking for build script HTML comment blocks

Configuration is now:

  concat:
  { generated: 
   { files: 
      [ { dest: '.tmp/concat/js/optimized.js',
          src: [ 'js/foo.js', 'js/bar.js' ] } ] } }

  uglify:
  { generated: 
   { files: 
      [ { dest: 'dist/js/optimized.js',
          src: [ '.tmp/concat/js/optimized.js' ] } ] } }

有人可以帮我吗,为什么没有创建 dist/js/optimized.js?

谢谢!

最佳答案

嗯,问题出在 grunt.registerTask('deploy', ['useminPrepare', 'uglify: generated']); 中。我忘记调用 concat: generated。

所以解决方案是:

grunt.registerTask('deploy', ['useminPrepare', 'concat:generated', 'uglify:generated']);

关于node.js - grunt-usemin src 文件为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31538162/

相关文章:

javascript - Bower 指向错误的路径(jQuery-form-validator)

java - 如何从 Eclipse Build Workspace 跳过 Maven 插件执行

javascript - Browserify 与 Usemin

mysql - Sequelize ORM 连接干净退出

javascript - 如何减少 Node JS 中多个异步函数的运行时间?

node.js - 在 Node.js 中使用公钥加密数据

node.js - Ubuntu create-react-app 失败,权限被拒绝

javascript - Grunt : minify js across project of multiple dirs, 以便每个目录的内容扁平化为单个缩小文件

node.js - Ubuntu - Node 环境中出现 Spawn EACCES 错误