3

Gruntfile の出力は、 の空のファイルですpublic/assets/app.js。Sass 部分は正常に動作しますが、JS 部分は動作しません。

//Gruntfile 
module.exports = function(grunt) {

  //Initializing the configuration object
    grunt.initConfig({

    // Task configuration
    sass: {
        dist: {
             options: {
              style: 'compressed'
            },
            files: {
              './public/assets/app.css': './app/assets/scss/style.scss'
            },
            noCache: true
        }
    },
    concat: {
      options: {
        separator: ';',
      },
      dist: {
        src: [
          './app/bower/jquery/jquery.js',
          './app/assets/js/script.js'
        ],
        dest: './public/assets/app.js',
      },
    },
    uglify: {
      options: {
        mangle: false 
      },
      dist: {
        files: {
          './public/assets/app.js': './public/assets/app.js',
        }
      },
    },
    jshint: {
      all: ['Gruntfile.js', './public/assets/app.js']
    },
    watch: {
        js: {
          files: [
            './app/assets/bower/*.js',
            './app/assets/js/*.js'
            ],   
          tasks: ['jshint', 'concat', 'uglify'],  
          options: {
            livereload: false 
          }
        },
        sass: {
          files: ['./app/assets/scss/*.scss'],
          tasks: ['sass'], 
          options: {
            livereload: false  
          }
        }
      }
    });

  // Plugin loading
  grunt.loadNpmTasks('grunt-contrib-concat');
  grunt.loadNpmTasks('grunt-contrib-watch');
  grunt.loadNpmTasks('grunt-contrib-sass');
  grunt.loadNpmTasks('grunt-contrib-uglify');
  grunt.loadNpmTasks('grunt-contrib-jshint');

  // Task definition
  grunt.registerTask('default', ['sass', 'jshint', 'concat', 'uglify', 'watch']);

};

しかし、何が悪いのかわかりません。JShint でさえエラーを表示していません。構造は次のようになります: https://www.dropbox.com/s/y0t2tu0asotz0ex/Screenshot%202013-12-20%2020.49.54.png

4

2 に答える 2

8

とディレクトリ構造をもう一度見てみるとGruntfile、フォルダーが正しく指定されていないと思います。ソースを として指定します./app/...が、Gruntfile がそのディレクトリ ( app) にある場合、そこから grunt タスクを実行する必要があります。つまり、探しているでしょうapp/app/...(現在のディレクトリに相対的であるため)。これを試して:

concat: {
  options: {
    separator: ';',
  },
  dist: {
    src: [
      'bower/jquery/jquery.js',
      'assets/js/script.js'
    ],
    dest: 'public/assets/app.js',
  },
},
于 2013-12-23T16:03:04.133 に答える
0

私の解決策は正しいファイルパスに設定されています: Scripts/libs/Timer.js- 正しい、/Scripts/libs/Timer.js- 空のファイル Scripts は私のプロジェクトへのフォルダーです。 Project/Scripts/libs/Timer.js- フルパス。このパスを設定した場合: Scripts/libs/Timer.js- ファイルが空でない場合/Scripts/libs/Timer.js- ファイルが空である場合。

concat: {
            options:{
                // define a string to put between each file in the concatenated output
                separator: '\n;'
            },
            own_scripts: {
                //project-files
                src: [
                    "Scripts/application/app.js",
                    "Scripts/application/Controllers/*.js",
                    "Scripts/application/Directives/*.js",
                    "Scripts/application/Filters/*.js",
                    "Scripts/application/Services/*.js"
                ],
                dest: 'dist/scripts-concat.js'
}

多分あなたはこれをするべきです:

    dist: {
        src: [
          'app/bower/jquery/jquery.js',
          'app/assets/js/script.js'
        ],
        dest: 'public/assets/app.js',
      },
于 2015-10-14T09:04:34.597 に答える