2015-05-12 83 views
2

我想在我的ASP項目中使用grunt,但出於任何原因都從Visual Studio獲得了一個愚蠢的警告消息。 你如何看待,涼亭任務已經執行,但沒有uglify和更少的任務。 Gruntfile.js和文件夾「wwwroot」位於同一個文件夾中。怎麼了 ?Visual Studio 2015:未寫入目標wwwroot/css/site.css,因爲未找到源文件。

這是在Visual Studio 2015年控制檯輸出:

> cmd.exe /c grunt -b "c:\T\BW\src\BW" --gruntfile "c:\T\BW\src\BW\gruntfile.js" bower 
 
Running "bower:install" (bower) task 
 
>> Installed bower packages 
 
>> Copied packages to c:\T\BW\src\BW\wwwroot\lib 
 
Done, without errors. 
 
Process terminated with code 0. 
 
> cmd.exe /c grunt -b "c:\T\BW\src\BW" --gruntfile "c:\T\BW\src\BW\gruntfile.js" uglify_default 
 
Running "uglify:uglify_target" (uglify) task 
 
Process terminated with code 0. 
 
>> Destination wwwroot/lib/angular/angular.js not written because src files were empty. 
 
>> No files created. 
 
Done, without errors. 
 
> cmd.exe /c grunt -b "c:\T\BW\src\BW" --gruntfile "c:\T\BW\src\BW\gruntfile.js" less 
 
Running "less:dev" (less) task 
 
>> Destination wwwroot/css/site.css not written because no source files were found. 
 
Done, without errors. 
 
Process terminated with code 0.

這是我gruntfile.js:

grunt.initConfig({ 
 
     bower: { 
 
      install: { 
 
       options: { 
 
        targetDir: "wwwroot/lib", 
 
        layout: "byComponent", 
 
        cleanTargetDir: false 
 
       } 
 
      } 
 
     }, 
 
     uglify: { 
 
      uglify_target: { 
 
       files: { 
 
        "wwwroot/lib/angular/angular.js":["src/angular.min.js"] 
 
       } 
 
      } 
 
     }, 
 
     less: { 
 
      dev: { 
 
       files: { 
 
        "wwwroot/css/site.css": ["less/site.less"] 
 
       }, 
 
       options: { 
 
        sourceMap: true, 
 
       } 
 
      } 
 
     }, 
 
    }); 
 

 
    grunt.registerTask("default", ["bower:install"]); 
 

 
    grunt.loadNpmTasks("grunt-bower-task"); 
 
    grunt.loadNpmTasks("grunt-contrib-uglify"); 
 
    grunt.loadNpmTasks("grunt-contrib-less");

回答

3

您確定"wwwroot/lib/angular/angular.js":["src/angular.min.js"]在您的uglify步驟中是否正確? Uglify是用來縮小文件的,所以看起來好像你的目標和源參數是相反的。您也會收到消息Destination wwwroot/lib/angular/angular.js not written because src files were empty.,這似乎也表明了這一點。

少一步似乎是正確的,但它找不到你要編譯的文件越少。你確定site.less存在於一個較少的文件夾中嗎?

下面是我剛剛寫的grunt文件中較少的部分,它似乎工作得很好,但獲取源映射實際生成仍然是一個問題。這與安裝了Web Essentials的VS 2013完全相同。使用autoprefix爲我們支持的瀏覽器編譯內容文件夾中所有較少的文件,並將.css放回到內容文件夾中。它不會編譯以_開頭的文件,因爲這些文件只是包含/變量。

less: { 
     development: { 
      options: { 
       paths: ["content"], 
       compress: true, 
       plugins: [ 
         new (require('less-plugin-autoprefix'))({ browsers: ["IE >= 9, firefox > 10, last 2 Chrome versions, last 2 safari versions, last 2 ios versions"], map: { inline: false } }) 
       ] 
      }, 
      files: [{ 
       expand: true, 
       cwd: 'content', 
       src: ['*.less', '!_*.less'], 
       dest: 'content', 
       ext: '.css' 
      }] 
     } 
    }, 
+0

非常感謝。你是對的,我實際上已經交換了目標和源參數。 **應該是:** '[「src/angular.min.js」]:「wwwroot/lib/angular/angular.js」'。我會標記你的答案是正確的。 –

相關問題