2014-10-10 6 views
6

ठीक है, मैं इस प्रश्न को गिटहब पर एंगुलर-फुलस्टैक की समस्या सूची पर पोस्ट करता हूं ताकि आप यह देखने के लिए वहां भी देख सकें कि क्या कोई अतिरिक्त पोस्ट नहीं है या नहीं। git hub questionएंगुलर-फुलस्टैक - ग्रंट बिल्डिंग जावास्क्रिप्ट फाइलों सहित नहीं है

मूल रूप से मैं कंसोल में निम्न उत्पादन हो रही है:

GET http://localhost:8080/assets/images/loading.gif 404 (Not Found) (index):60 
GET http://localhost:8080/app/assignment-meeting/prepare-senior/candidate/profile/_profile-ctrl.js (index):102 
GET http://localhost:8080/app/assignment-meeting/prepare-senior/candidate-list/candidates-list-controller.js (index):100 
GET http://localhost:8080/app/assignment-meeting/prepare-senior/candidate/_candidate-ctrl.js (index):101 
GET http://localhost:8080/app/assignment-meeting/prepare-senior/candidate/summary/_summary-ctrl.js (index):103 
GET http://localhost:8080/app/home/home-controller.js (index):104 
GET http://localhost:8080/components/services/candidate-services.js (index):109 
GET http://localhost:8080/components/auth/User.js (index):106 
GET http://localhost:8080/app/routes.js (index):105 
GET http://localhost:8080/components/directives/napi-ck-editor.js (index):108 
GET http://localhost:8080/components/auth/user-service.js (index):107 
GET http://localhost:8080/components/services/http-helper.js (index):110 
GET http://localhost:8080/components/services/menu-services.js 404 (Not Found) 

यह मेरी स्क्रिप्ट मेरे index.html पृष्ठ की इंजेक्टर वर्गों के भीतर स्थित फ़ाइलें नहीं मिल सकता है घुरघुराना निर्माण की तरह लगता है। यदि मैं मूल रूप से बनाई गई index.html फ़ाइल को दोबारा दोहराता हूं जो जेनरेटर ने "Google Analytics" सेक्शन के ऊपर दिए गए सभी कोड को कॉपी और कॉपी किया है, तो यह ठीक काम करेगा। मुझे समझ में नहीं आता कि यह क्यों काम नहीं करता है क्योंकि ऐसा लगता है कि कोड में कोई वास्तविक अंतर नहीं दिख रहा है। पृष्ठ एक पंक्ति को अलग नहीं दिखाता है। एकमात्र चीज जिसे मैंने सोचा था कि समस्या का कारण हो सकता है यह है कि जब मैं इसे गिट करने के लिए प्रतिबद्ध करता हूं तो रेखा समाप्त हो सकती है और फिर इसमें समस्याएं होती हैं। सच में मैं इस पर अंधेरे में हूँ। मैं इस सवाल को दो अलग-अलग रूपों पर पोस्ट करता हूं इसलिए मैं इसे पुनः टाइप करने के थक गया हूं ... इसलिए यदि आप मेरी गिट हब पोस्ट (उपरोक्त लिंक) पढ़ना चाहते हैं, तो यह बेहतर शब्द हो सकता है।

सहायता के लिए धन्यवाद।

अपडेट: "। निर्माण"

माफ करना, मैं मेरी घुरघुराना फ़ाइल संलग्न किया जाना चाहिए था, तो यह पढ़ा जा सकता है और कहा एक grunt.registerTask कहा जाता है कि मैं इसे संलग्न नहीं किया क्योंकि मैं वास्तव में यह डिफ़ॉल्ट रूप से एक कोणीय fullstack द्वारा किए गए से बदल दिया है और आंकड़ा अन्य बस भी देख सकते हैं यह है कि एक संदर्भ ... लेकिन संलग्न के रूप में सरल और बेहतर:

'use strict'; 

module.exports = function (grunt) { 

    // Configurable paths for the application 
    var appConfig = { 
     app: require('./bower.json').appPath || 'client', 
     dist: 'src/main/webapp' 
    }; 

    // Load grunt tasks automatically, when needed 
    require('jit-grunt')(grunt, { 
     useminPrepare: 'grunt-usemin', 
     ngtemplates: 'grunt-angular-templates', 
     cdnify: 'grunt-google-cdn', 
     protractor: 'grunt-protractor-runner', 
     injector: 'grunt-asset-injector' 
    }); 

// require('load-grunt-tasks')(grunt); 

    // Time how long tasks take. Can help when optimizing build times 
    require('time-grunt')(grunt); 

    // Define the configuration for all the tasks 
    grunt.initConfig({ 

     // Project settings 
     pkg: grunt.file.readJSON('package.json'), 
     yeoman: { 
      // configurable paths 
      client: require('./bower.json').appPath || 'client', 
      dist: 'src/main/webapp' 
     }, 
     watch: { 
      bower: { 
       files: ['bower.json'], 
       tasks: ['wiredep'] 
      }, 
      injectJS: { 
       files: [ 
        '<%= yeoman.client %>/{app,components}/**/*.js', 
        '!<%= yeoman.client %>/{app,components}/**/*.spec.js', 
        '!<%= yeoman.client %>/{app,components}/**/*.mock.js', 
        '!<%= yeoman.client %>/app/app.js'], 
       tasks: ['injector:scripts'] 
      }, 
      injectCss: { 
       files: [ 
        '<%= yeoman.client %>/{app,components}/**/*.css' 
       ], 
       tasks: ['injector:css'] 
      }, 
      jsTest: { 
       files: [ 
        '<%= yeoman.client %>/{app,components}/**/*.spec.js', 
        '<%= yeoman.client %>/{app,components}/**/*.mock.js' 
       ], 
       tasks: ['newer:jshint:all', 'karma'] 
      }, 
      injectSass: { 
       files: [ 
        '<%= yeoman.client %>/{app,components}/**/*.{scss,sass}'], 
       tasks: ['injector:sass'] 
      }, 
      sass: { 
       files: [ 
        '<%= yeoman.client %>/{app,components}/**/*.{scss,sass}'], 
       tasks: ['sass', 'autoprefixer'] 
      }, 
      gruntfile: { 
       files: ['Gruntfile.js'] 
      }, 
      livereload: { 
       files: [ 
        '{.tmp,<%= yeoman.client %>}/{app,components}/**/*.css', 
        '{.tmp,<%= yeoman.client %>}/{app,components}/**/*.html', 
        '{.tmp,<%= yeoman.client %>}/{app,components}/**/*.js', 
        '!{.tmp,<%= yeoman.client %>}{app,components}/**/*.spec.js', 
        '!{.tmp,<%= yeoman.client %>}/{app,components}/**/*.mock.js', 
        '<%= yeoman.client %>/assets/images/{,*//*}*.{png,jpg,jpeg,gif,webp,svg}' 
       ], 
       options: { 
        livereload: true 
       } 
      } 
     }, 

     // The actual grunt server settings 
     connect: { 
      options: { 
       port: 9000, 
       // Change this to '0.0.0.0' to access the server from outside. 
       hostname: 'localhost' 
      }, 
      livereload: { 
       options: { 
        open: true, 
        middleware: function (connect) { 
         return [ 
          connect.static('.tmp'), 
          connect().use(
           '/client/bower_components', 
           connect.static('./client/bower_components') 
          ), 
          connect.static(appConfig.app) 
         ]; 
        } 
       } 
      }, 
      test: { 
       options: { 
        port: 9001, 
        middleware: function (connect) { 
         return [ 
          connect.static('.tmp'), 
          connect.static('test'), 
          connect().use(
           '/client/bower_components', 
           connect.static('./client/bower_components') 
          ), 
          connect.static(appConfig.app) 
         ]; 
        } 
       } 
      }, 
      dist: { 
       options: { 
        open: true, 
        base: '<%= yeoman.dist %>' 
       } 
      } 
     }, 

     // Make sure code styles are up to par and there are no obvious mistakes 
     jshint: { 
      options: { 
       jshintrc: '<%= yeoman.client %>/.jshintrc', 
       reporter: require('jshint-stylish') 
      }, 
      all: [ 
       '<%= yeoman.client %>/{app,components}/**/*.js', 
       '!<%= yeoman.client %>/{app,components}/**/*.spec.js', 
       '!<%= yeoman.client %>/{app,components}/**/*.mock.js' 
      ], 
      test: { 
       src: [ 
        '<%= yeoman.client %>/{app,components}/**/*.spec.js', 
        '<%= yeoman.client %>/{app,components}/**/*.mock.js' 
       ] 
      } 
     }, 

     // Empties folders to start fresh 
     clean: { 
      dist: { 
       files: [{ 
        dot: true, 
        src: [ 
         '.tmp', 
         '<%= yeoman.dist %>/*', 
         '!<%= yeoman.dist %>/.git*', 
         '!<%= yeoman.dist %>/.openshift', 
         '!<%= yeoman.dist %>/Procfile' 
        ] 
       }] 
      }, 
      server: '.tmp' 
     }, 

     // Add vendor prefixed styles 
     autoprefixer: { 
      options: { 
       browsers: ['last 1 version'] 
      }, 
      dist: { 
       files: [{ 
        expand: true, 
        cwd: '.tmp/', 
        src: '{,*/}*.css', 
        dest: '.tmp/' 
       }] 
      } 
     }, 


     // Automatically inject Bower components into the app 
     wiredep: { 
      target: { 
       src: '<%= yeoman.client %>/index.html', 
       ignorePath: '<%= yeoman.client %>/', 
       exclude: [/bootstrap-sass-official/, /bootstrap.js/, '/json3/', '/es5-shim/', /bootstrap.css/, /font-awesome.css/ ] 
      } 
     }, 

     // Renames files for browser caching purposes 
     rev: { 
      dist: { 
       files: { 
        src: [ 
         '<%= yeoman.dist %>/public/{,*/}*.js', 
         '<%= yeoman.dist %>/public/{,*/}*.css', 
         '<%= yeoman.dist %>/public/assets/images/{,*/}*.{png,jpg,jpeg,gif,webp,svg}', 
         '<%= yeoman.dist %>/public/assets/fonts/*' 
        ] 
       } 
      } 
     }, 

     // Reads HTML for usemin blocks to enable smart builds that automatically 
     // concat, minify and revision files. Creates configurations in memory so 
     // additional tasks can operate on them 
     useminPrepare: { 
      html: ['<%= yeoman.client %>/index.html'], 
      options: { 
       dest: '<%= yeoman.dist %>/public', 
       flow: { 
        html: { 
         steps: { 
          js: ['concat', 'uglifyjs'], 
          css: ['cssmin'] 
         }, 
         post: {} 
        } 
       } 
      } 
     }, 
     cssmin: { 
      options: { 
       root: 'client' 
      } 
     }, 
     // Performs rewrites based on rev and the useminPrepare configuration 
     usemin: { 
      html: ['<%= yeoman.dist %>/public/{,*/}*.html'], 
      css: ['<%= yeoman.dist %>/public/{,*/}*.css'], 
      js: ['<%= yeoman.dist %>/public/{,*/}*.js'], 
      options: { 
       assetsDirs: [ 
        '<%= yeoman.dist %>/public', 
        '<%= yeoman.dist %>/public/assets/images' 
       ], 
       // This is so we update image references in our ng-templates 
       patterns: { 
        js: [ 
         [/(assets\/images\/.*?\.(?:gif|jpeg|jpg|png|webp|svg))/gm, 'Update the JS to reference our revved images'] 
        ] 
       } 
      } 
     }, 

     // The following *-min tasks produce minified files in the dist folder 
     imagemin: { 
      dist: { 
       files: [{ 
        expand: true, 
        cwd: '<%= yeoman.client %>/assets/images', 
        src: '{,*/}*.{png,jpg,jpeg,gif}', 
        dest: '<%= yeoman.dist %>/public/assets/images' 
       }] 
      } 
     }, 

//  htmlmin: { 
//   dist: { 
//    options: { 
//     collapseWhitespace: true, 
//     conservativeCollapse: true, 
//     collapseBooleanAttributes: true, 
//     removeCommentsFromCDATA: true, 
//     removeOptionalTags: true 
//    }, 
//    files: [{ 
//     expand: true, 
//     cwd: '<%= yeoman.dist %>', 
//     src: ['*.html', 'app/**/*.html'], 
//     dest: '<%= yeoman.dist %>' 
//    }] 
//   } 
//  }, 
//  uglify: { 
//   dist: { 
//    files: { 
//    '<%= yeoman.dist %>/scripts/scripts.js': [ 
//     '<%= yeoman.dist %>/scripts/scripts.js' 
//    ] 
//    } 
//   } 
//  }, 

     svgmin: { 
      dist: { 
       files: [{ 
        expand: true, 
        cwd: '<%= yeoman.client %>/assets/images', 
        src: '{,*/}*.svg', 
        dest: '<%= yeoman.dist %>/public/assets/images' 
       }] 
      } 
     }, 

     // Allow the use of non-minsafe AngularJS files. Automatically makes it 
     // minsafe compatible so Uglify does not destroy the ng references 
     ngAnnotate: { 
      dist: { 
       files: [{ 
        expand: true, 
        cwd: '.tmp/concat', 
        src: '*/**.js', 
        dest: '.tmp/concat' 
       }] 
      } 
     }, 

     // Package all the html partials into a single javascript payload 
     ngtemplates: { 
      options: { 
       // This should be the name of your apps angular module 
       module: 'napiRest', 
       htmlmin: { 
        collapseBooleanAttributes: true, 
        collapseWhitespace: true, 
        removeAttributeQuotes: true, 
        removeEmptyAttributes: true, 
        removeRedundantAttributes: true, 
        removeScriptTypeAttributes: true, 
        removeStyleLinkTypeAttributes: true 
       }, 
       usemin: 'app/app.js' 
      }, 
      main: { 
       cwd: '<%= yeoman.client %>', 
       src: ['{app,components}/**/*.html'], 
       dest: '.tmp/templates.js' 
      }, 
      tmp: { 
       cwd: '.tmp', 
       src: ['{app,components}/**/*.html'], 
       dest: '.tmp/tmp-templates.js' 
      } 
     }, 

     // Replace Google CDN references 
     cdnify: { 
      dist: { 
       html: ['<%= yeoman.dist %>/public/*.html'] 
      } 
     }, 

     // Copies remaining files to places other tasks can use 
     copy: { 
      dist: { 
       files: [{ 
        expand: true, 
        dot: true, 
        cwd: '<%= yeoman.client %>', 
        dest: '<%= yeoman.dist %>/public', 
        src: [ 
         '*.{ico,png,txt}', 
         '.htaccess', 
         'bower_components/**/*', 
         'assets/images/{,*/}*.{webp}', 
         'assets/fonts/**/*', 
         'index.html' 
        ] 
       }, { 
        expand: true, 
        cwd: '.tmp/images', 
        dest: '<%= yeoman.dist %>/public/assets/images', 
        src: ['generated/*'] 
       }, { 
        expand: true, 
        dest: '<%= yeoman.dist %>', 
        src: [ 
         'package.json' 
        ] 
       }] 
      }, 
      styles: { 
       expand: true, 
       cwd: '<%= yeoman.client %>', 
       dest: '.tmp/', 
       src: ['{app,components}/**/*.css'] 
      } 
     }, 

     // Run some tasks in parallel to speed up the build process 
     concurrent: { 
      server: [ 
       'sass' 
      ], 
      test: [ 
       'sass' 
      ], 
      dist: [ 
       'sass', 
       'imagemin', 
       'svgmin' 
      ] 
     }, 

     // Test settings 
     karma: { 
      unit: { 
       configFile: 'karma.conf.js', 
       singleRun: true 
      } 
     }, 

     mochaTest: { 
      options: { 
       reporter: 'spec' 
      }, 
      src: ['server/**/*.spec.js'] 
     }, 

     protractor: { 
      options: { 
       configFile: 'protractor.conf.js' 
      }, 
      chrome: { 
       options: { 
        args: { 
         browser: 'chrome' 
        } 
       } 
      } 
     }, 


     // Compiles Sass to CSS 
     sass: { 
      server: { 
       options: { 
        loadPath: [ 
         '<%= yeoman.client %>/bower_components', 
         '<%= yeoman.client %>/app', 
         '<%= yeoman.client %>/components' 
        ], 
        compass: false 
       }, 
       files: { 
        '.tmp/app/app.css' : '<%= yeoman.client %>/app/app.scss' 
       } 
      } 
     }, 

     injector: { 
      options: { 

      }, 
      // Inject application script files into index.html (doesn't include bower) 
      scripts: { 
       options: { 
        transform: function(filePath) { 
         filePath = filePath.replace('/client/', ''); 
         filePath = filePath.replace('/.tmp/', ''); 
         return '<script src="' + filePath + '"></script>'; 
        }, 
        starttag: '<!-- injector:js -->', 
        endtag: '<!-- endinjector -->' 
       }, 
       files: { 
        '<%= yeoman.client %>/index.html': [ 
         ['{.tmp,<%= yeoman.client %>}/{app,components}/**/*.js', 
          '!{.tmp,<%= yeoman.client %>}/app/app.js', 
          '!{.tmp,<%= yeoman.client %>}/{app,components}/**/*.spec.js', 
          '!{.tmp,<%= yeoman.client %>}/{app,components}/**/*.mock.js'] 
        ] 
       } 
      }, 

      // Inject component scss into app.scss 
      sass: { 
       options: { 
        transform: function(filePath) { 
         filePath = filePath.replace('/client/app/', ''); 
         filePath = filePath.replace('/client/components/', ''); 
         return '@import \'' + filePath + '\';'; 
        }, 
        starttag: '// injector', 
        endtag: '// endinjector' 
       }, 
       files: { 
        '<%= yeoman.client %>/app/app.scss': [ 
         '<%= yeoman.client %>/{app,components}/**/*.{scss,sass}', 
         '!<%= yeoman.client %>/app/app.{scss,sass}' 
        ] 
       } 
      }, 

      // Inject component css into index.html 
      css: { 
       options: { 
        transform: function(filePath) { 
         filePath = filePath.replace('/client/', ''); 
         filePath = filePath.replace('/.tmp/', ''); 
         return '<link rel="stylesheet" href="' + filePath + '">'; 
        }, 
        starttag: '<!-- injector:css -->', 
        endtag: '<!-- endinjector -->' 
       }, 
       files: { 
        '<%= yeoman.client %>/index.html': [ 
         '<%= yeoman.client %>/{app,components}/**/*.css' 
        ] 
       } 
      } 
     } 
    }); 

    // Used for delaying livereload until after server has restarted 
    grunt.registerTask('wait', function() { 
     grunt.log.ok('Waiting for server reload...'); 

     var done = this.async(); 

     setTimeout(function() { 
      grunt.log.writeln('Done waiting!'); 
      done(); 
     }, 3000); 
    }); 


    grunt.registerTask('serve', function (target) { 
     if (target === 'dist') { 
      return grunt.task.run(['build', 'wait', 'connect:dist:keepalive']); 
     } 

     grunt.task.run([ 
      'clean:server', 
      'injector:sass', 
      'concurrent:server', 
      'injector', 
      'wiredep', 
      'autoprefixer', 
      'connect:livereload', 
      'wait', 
      'watch' 
     ]); 
    }); 

    grunt.registerTask('server', function() { 
     grunt.log.warn('The `server` task has been deprecated. Use `grunt serve` to start a server.'); 
     grunt.task.run(['serve']); 
    }); 

    grunt.registerTask('test', function(target) { 
     if (target === 'client') { 
      return grunt.task.run([ 
       'clean:server', 
       'injector:sass', 
       'concurrent:test', 
       'injector', 
       'autoprefixer', 
       'karma' 
      ]); 
     } 

     else if (target === 'e2e') { 
      return grunt.task.run([ 
       'clean:server', 
       'injector:sass', 
       'concurrent:test', 
       'injector', 
       'wiredep', 
       'autoprefixer', 
       'connect:test', 
       'protractor' 
      ]); 
     } 

     else grunt.task.run([ 
       'test:client' 
      ]); 
    }); 

    grunt.registerTask('build', [ 
     'clean:dist', 
     'injector:sass', 
     'concurrent:dist', 
     'injector', 
     'wiredep', 
     'useminPrepare', 
     'autoprefixer', 
     'ngtemplates', 
     'concat', 
     'ngAnnotate', 
     'copy:dist', 
     'cdnify', 
     'cssmin', 
     'uglify', 
     'rev', 
     'usemin' 
    ]); 

    grunt.registerTask('default', [ 
     'newer:jshint', 
     'test', 
     'build' 
    ]); 
}; 
+0

मुझे एक ही समस्या है। क्या आप पुष्टि कर सकते हैं कि आपके सार्वजनिक/index.html में सभी स्क्रिप्ट और स्टाइलशीट फ़ाइलें हैं? यदि मैं क्लाइंट/index.html से इंजेक्टर टैग हटा देता हूं तो यह ठीक काम करता है। – vinesh

+0

@ विनेश तो आपने बस अपने सूचकांक पृष्ठ से '' टैग हटा दिए और फिर यह सही तरीके से काम किया? क्या आप मैन्युअल रूप से अपनी इंडेक्स पेज में बनाए गए किसी भी नई जेएस फाइलों को सम्मिलित कर रहे हैं? वर्तमान में स्क्रिप्ट और स्टाइलशीट सही ढंग से इंजेक्शन दिए जाते हैं और 'ग्रंट सर्विस' कमांड के साथ काम करते हैं। यह तब होता है जब मैं 'ग्रंट बिल्ड' कमांड का उपयोग करता हूं जो समस्याएं होती हैं। यदि आपके प्रश्न का उत्तर दिया गया तो मैं 100% नहीं हूं। – QuietOmen

+0

'ग्रंट सर्विस' मेरे लिए भी सही तरीके से काम करता है। इसलिए मुझे इंडेक्स पेज में मैन्युअल रूप से नई फाइलों को सम्मिलित करने की आवश्यकता नहीं है। इसका 'ग्रंट बिल्ड' जो 'क्लाइंट/index.html' में' 'टैग के साथ अपेक्षित नहीं है। मैंने आपसे पूछा कि क्या आपकी जेनरेट की गई इंडेक्स फ़ाइल में मूल इंडेक्स पेज में सभी स्क्रिप्ट शामिल हैं? आप https://github.com/DaftMonk/generator-angular-fullstack/issues/370 – vinesh

उत्तर

0

हो सकता है क्योंकि 'निर्माण' Gruntfile.js

भीतर एक पंजीकृत कार्य नहीं है पंजीकृत कार्य हैं: टक्कर, मंच, generateDemo, releaseDemoBuild, updateFixtures, installFixtures, परीक्षण, डेमो, releaseDemo

मैं लगता है कि आप शायद रिलीज करना चाहते हैं डेमोबिल्ड?

घुरघुराना

+0

पर मेरी टिप्पणी का उल्लेख कर सकते हैं जो मैंने अभी पोस्ट किया है, उसे देखें। Gruntfile.js में एक रजिस्टर कार्य है जो जेनरेटर द्वारा बनाया गया है। तो यह काम करना चाहिए, और सामान्य रूप से करता है, जब तक कि यह अजीब त्रुटि पॉप अप न हो ... ऐसा लगता है कि कोई तर्क नहीं है। – QuietOmen

4

मैं xactly एक ही समस्या का सामना किया है यहाँ releaseDemoBuild। फ़ाइल तुलना द्वारा फ़ाइल के घंटों के बाद । मैंने अंततः इसे हल कर लिया है। तो मैंने सोचा कि मैं साझा करूंगा जो मेरे लिए काम करता है।

मैं विंडोज़ पर काम कर रहा हूं, और समस्या को हल करने के लिए अपने टेक्स्ट एडिटर (मैं रास्ते में शानदार पाठ का उपयोग कर रहा हूं) में "index.html" के लिए यूनिक्स शैली के अंत में लाइन को बदलता हूं। "विंडोज़" लाइन समाप्त होने पर स्क्रिप्ट बग को लगता है।

आशा है कि इससे मदद मिलेगी।

Meg4mi

+0

धन्यवाद, मुझे यह भी पता चला है, लेकिन मुझे उत्सुकता है कि क्या आपको सभी उपयोगकर्ताओं के लिए यूनिक्स प्रारूप में लाइन समाप्त रहने का तरीका मिल गया है? मेरा मतलब है कि मैं अपने संपादक में समाप्त होने वाली रेखा को बदलने के लिए सभी को बताना नहीं चाहता हूं। मेरे पास यह मेरी .editorconfig फ़ाइल में है लेकिन यह काम नहीं कर रहा है: 'end_of_line = lf' – QuietOmen

+0

बहुत बहुत धन्यवाद! यह मेरे लिए काम किया। मैंने लाइन एंडिंग को कैसे परिवर्तित किया: http://stackoverflow.com/questions/11899843/fixing-sublime-text-2-line-endings – acidRain

+0

धन्यवाद! धन्यवाद! धन्यवाद! – user1828780

3

यह क्योंकि घुरघुराना-इंजेक्टर लाइन अंत के है। this issue देखें।

से बचने के लिए आप डिफ़ॉल्ट घुरघुराना लाइन अंत के साथ काम करने के लिए घुरघुराना इंजेक्टर कॉन्फ़िगर कर सकता है कि:

injector: { 
    options: { 
     lineEnding: grunt.util.linefeed 
    }, 
    ... 
} 

ऐसा करने से, आप अपने Git लाइन मामला आप विभिन्न प्लेटफार्मों पर काम में स्थापित करने के अंत कॉन्फिगर करना होगा।मान लें कि आप विंडोज़ पर हैं और लिनक्स से फाइल खींच रहे हैं, आप इंजेक्शन प्रक्रिया के बाद एक मिश्रित एलएफ और सीआर/एलएफ फ़ाइल (सभी एचटीएमएल फाइल में एलएफ और सीआर/एलएफ बीवेन <!-- injector:js --> टैग) प्राप्त करेंगे और ग्रंट-बिल्ड प्लगइन नहीं होगा काम।

आप अपनी फ़ाइल पर लाइन समाप्ति देखने के लिए this सब्लिमे टेक्स्ट प्लगइन का उपयोग कर सकते हैं।

+0

और सुनिश्चित करें कि यह ग्रंट-एसेट-इंजेक्टर का एक नया संस्करण है क्योंकि लाइन एन्डिंग विकल्प को ओपनशफ्ट के लिए कोणीय-पूर्णस्टैक द्वारा जारी किए गए नए संस्करण में जोड़ा गया था। –

संबंधित मुद्दे