Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 尝试使用grunt contrib uglify时出错:“0”;src文件为空";_Javascript_Gruntjs_Grunt Contrib Uglify - Fatal编程技术网

Javascript 尝试使用grunt contrib uglify时出错:“0”;src文件为空";

Javascript 尝试使用grunt contrib uglify时出错:“0”;src文件为空";,javascript,gruntjs,grunt-contrib-uglify,Javascript,Gruntjs,Grunt Contrib Uglify,我有以下grunfile.js: module.exports = function(grunt) { var config = { pkg: grunt.file.readJSON('package.json'), /* Some other tasks... */ uglify: { options: { banner: '/*! <%= pkg.name %> <%= grunt.template

我有以下
grunfile.js

module.exports = function(grunt) {
  var config = {
    pkg: grunt.file.readJSON('package.json'),
    
    /* Some other tasks... */
    
    uglify: {
      options: {
        banner: '/*! <%= pkg.name %> <%= grunt.template.today("yyyy-mm-dd") %> */\n'
      },
      def: {
        files: {
          'out/src.js': 'out/src.min.js'
        }
      }
    }
  };

  grunt.initConfig(config);
  grunt.loadNpmTasks('grunt-contrib-uglify');

  grunt.registerTask('default', [/* <other-tasks>, */ 'uglify:def']);
};
重要提示:我从
项目
文件夹
运行
grunt

运行
grunt
时,在
uglify:def
之前有一个任务,负责将
src.js
生成到
project/out

当我运行
grunt
时,我可以看到
src.js
被生成到
project/out
,但是当grunt运行
uglisy:def
时,我得到以下错误:

正在运行“uglify:def”(uglify)任务

未写入目标out/src.js,因为src文件为空

没有创建任何文件

我做错了什么

日志 使用
--verbose
运行时,我得到:

Running "uglify:def" (uglify) task
Verifying property uglify.def exists in config...OK
Files: [no src] -> out/src.js
Options: banner="/*! My Pack 2015-07-19 */\r\n", footer="", compress={"warnings":false}, mangle={}, beautify=false, report="
min", expression=false, maxLineLen=32000, ASCIIOnly=false, screwIE8=false, quoteStyle=0
>> Destination out/src.js not written because src files were empty.
>> No files created.

我有一个如下的配置,它适合我

    // uglify javascript
    uglify: {
        dev: {
            options: {
                mangle: true
            },
            files: {
                'js/dest.min.js': 'js/source.js'
            }
        }
    },

可能你把目的地和来源弄混了。尝试切换它们。

发生这种情况的原因是,您没有注册上述给定任务

好的,让我们从grunt中的连接开始:

concat: {
    css: {
        src: ['./assets/css/*.css', './assets/css/**/*.css'],
        dest: './dist/css/style.css'
    },
    js: {
        src: ['./assets/js/*.js', './assets/js/**/*.js'],
        dest: './dist/js/script.js'
    }
},
因此,这个
concat
应该从上面给定的
url/目录中收集所有
css
文件,并在一个地方连接到给定的目的地,然后使用
js

这将是在
dest
目标目录中简单连接的
style.css
script.js

但它不会工作,除非您不在下面的行中注册此
concat
任务:

grunt.registerTask('default', ['concat', 'cssmin', 'uglify']);
因此,直到
concat
不会连接
dest
目录中的那些文件,
uglify
将如何收集和工作


结论:除非您在
grunt.registerTask
函数中未提及它们,否则任务将无法执行。

我的问题是源文件的路径不正确。因此,文件不是“空的”,而是找不到它。

使用verbose标志运行
grunt--verbose
在诊断此类问题时很有帮助。使用verbose标志运行任务时的输出是什么?似乎缺少文件映射的LHS。。。奇怪。非常愚蠢的错误,当你花太多时间做某件事时很难发现。谢谢你,伙计!
grunt.registerTask('default', ['concat', 'cssmin', 'uglify']);