2016-08-28 7 views
1

Когда я бегу хрюкать служить удалить эту строку из index.htmlGrunt служат удалить bower_components/угловой i18n из index.html

<script src="bower_components/angular-i18n/angular-locale_it-it.js"></script> 

Мой bower.json является:

{ 
    "name": "operatore-smart", 
    "version": "0.0.0", 
    "dependencies": { 
    "angular": "^1.4.0", 
    "bootstrap": "^3.3.6", 
    "angular-animate": "^1.4.0", 
    "angular-cookies": "^1.4.0", 
    "angular-resource": "^1.4.0", 
    "angular-route": "^1.4.0", 
    "angular-sanitize": "^1.4.0", 
    "angular-touch": "^1.4.0", 
    "angular-ui-router": "^0.3.1", 
    "lodash": "^4.13.1", 
    "ngToast": "ngtoast#^2.0.0", 
    "angularjs-dropdown-multiselect": "^1.5.2", 
    "angular-bootstrap": "^2.0.0", 
    "angular-ui-date": "^1.0.1", 
    "angular-momentjs": "^0.2.2", 
    "angular-i18n": "^1.5.8" 
    }, 
    "devDependencies": { 
    "angular-mocks": "^1.4.0" 
    }, 
    "appPath": "app", 
    "moduleName": "operatoreSmartApp", 
    "overrides": { 
    "bootstrap": { 
     "main": [ 
     "less/bootstrap.less", 
     "dist/css/bootstrap.css", 
     "dist/js/bootstrap.js" 
     ] 
    } 
    } 
} 

Я также создаю bower install, и каталог bower_components \ angular-i18n правильно установлен.

Вы можете мне помочь?

index.html

<!doctype html> 
<html> 
<head> 
    <base href="/"> 
    <!--<base href="/~opw2er34mart/">--> 
    <meta charset="utf-8"> 
    <title>Titolo</title> 
    <meta name="description" content=""> 
    <meta name="viewport" content="width=device-width"> 
    <!-- Place favicon.ico and apple-touch-icon.png in the root directory --> 
    <!-- build:css(.) styles/vendor.css --> 
    <!-- bower:css --> 
    <link rel="stylesheet" href="bower_components/bootstrap/dist/css/bootstrap.css"/> 
    <link rel="stylesheet" href="bower_components/ngToast/dist/ngToast.css"/> 
    <!-- endbower --> 
    <!-- endbuild --> 
    <!-- build:css({.tmp,app}) styles/main.css --> 
    <link rel="stylesheet" href="styles/main.css"> 
    <link rel="stylesheet" href="styles/myCss.css"> 
    <link rel="stylesheet" href="island/css/island.css"> 
    <link rel="stylesheet" href="user/css/user.css"> 
    <link rel="stylesheet" href="dashboard/css/authentication.css"> 
    <link rel="stylesheet" href="calendar/css/calendar.css"> 
    <!-- endbuild --> 
</head> 
<body ng-app="SmartApp"> 
<toast></toast> 
<!--[if lte IE 8]> 
<p class="browsehappy">You are using an <strong>outdated</strong> browser. Please <a href="http://browsehappy.com/">upgrade 
    your browser</a> to improve your experience.</p> 
<![endif]--> 

<div data-ng-include="'UI/navigation.template.html'"></div> 

<!-- Add your site or application content here --> 

<div class="container-fluid"> 
    <div class="row"> 
    <div class="col-xs-12" ui-view></div> 
    </div> 
</div> 

<div class="footer-style" data-ng-include="'UI/footer.template.html'"></div> 


<!-- Google Analytics: change UA-XXXXX-X to be your site's ID --> 
<!--<script>--> 
<!--!function (A, n, g, u, l, a, r) {--> 
<!--A.GoogleAnalyticsObject = l, A[l] = A[l] || function() {--> 
<!--(A[l].q = A[l].q || []).push(arguments)--> 
<!--}, A[l].l = +new Date, a = n.createElement(g),--> 
<!--r = n.getElementsByTagName(g)[0], a.src = u, r.parentNode.insertBefore(a, r)--> 
<!--}(window, document, 'script', 'https://www.google-analytics.com/analytics.js', 'ga');--> 

<!--ga('create', 'UA-XXXXX-X');--> 
<!--ga('send', 'pageview');--> 
<!--</script>--> 

<!-- build:js(.) scripts/vendor.js --> 
<!-- bower:js --> 
<script src="bower_components/jquery/dist/jquery.js"></script> 
<script src="bower_components/angular/angular.js"></script> 
<script src="bower_components/bootstrap/dist/js/bootstrap.js"></script> 
<script src="bower_components/angular-animate/angular-animate.js"></script> 
<script src="bower_components/angular-cookies/angular-cookies.js"></script> 
<script src="bower_components/angular-resource/angular-resource.js"></script> 
<script src="bower_components/angular-route/angular-route.js"></script> 
<script src="bower_components/angular-sanitize/angular-sanitize.js"></script> 
<script src="bower_components/angular-touch/angular-touch.js"></script> 
<script src="bower_components/angular-ui-router/release/angular-ui-router.js"></script> 
<script src="bower_components/lodash/lodash.js"></script> 
<script src="bower_components/ngToast/dist/ngToast.js"></script> 
<script src="bower_components/angularjs-dropdown-multiselect/src/angularjs-dropdown-multiselect.js"></script> 
<script src="bower_components/angular-bootstrap/ui-bootstrap-tpls.js"></script> 
<script src="bower_components/jquery-ui/jquery-ui.js"></script> 
<script src="bower_components/angular-ui-date/dist/date.js"></script> 
<script src="bower_components/moment/moment.js"></script> 
<script src="bower_components/angular-momentjs/angular-momentjs.js"></script> 
<script src="bower_components/angular-i18n/angular-locale_it-it.js"></script> 
<!-- endbower --> 
<!-- endbuild --> 

<!-- build:js({.tmp,app}) scripts/scripts.js --> 
<script> 
    _.contains = _.includes; 
</script> 
<script src="app.js"></script> 
<script src="app.routes.js"></script> 
<script src="dashboard/controllers/dashboard.controller.js"></script> 
<script src="authentication/services/authentication.service.js"></script> 
<script src="authentication/controllers/login.controllers.js"></script> 
<script src="profile/controllers/profile.controller.js"></script> 
<script src="profile/services/user-profile.service.js"></script> 
<script src="profile/controllers/notifica.controller.js"></script> 
<script src="profile/services/notifica.service.js"></script> 
<script src="changepsw/controllers/changepsw.controller.js"></script> 
<script src="changepsw/services/change-psw.service.js"></script> 
<script src="alarm/controllers/alarm.controller.js"></script> 
<script src="alarm/services/alarm.service.js"></script> 

<script src="alarm/controllers/alarm.avvisi.controller.js"></script> 
<script src="alarm/services/alarm.avvisi.service.js"></script> 

<script src="island/controllers/island.controller.js"></script> 
<script src="island/controllers/island.groups.controller.js"></script> 
<script src="island/services/island.groups.service.js"></script> 

<script src="island/services/island.service.js"></script> 

<script src="island/controllers/island.accessories.controller.js"></script> 
<script src="island/services/island.accessories.service.js"></script> 

<script src="island/controllers/island.availabilities.controller.js"></script> 
<script src="island/services/island.availabilities.service.js"></script> 

<!-- USER COMPONENTS--> 
<script src="user/services/user.service.js"></script> 
<script src="user/controllers/user.controller.js"></script> 
<script src="user/controllers/user-modal.controller.js"></script> 
<script src="user/controllers/general-info.controller.js"></script> 
<script src="user/controllers/job.controller.js"></script> 
<script src="user/controllers/documents.controller.js"></script> 
<script src="user/controllers/other-info.controller.js"></script> 
<script src="user/controllers/courses.controller.js"></script> 
<script src="user/controllers/vaccinations.controller.js"></script> 
<script src="user/controllers/holidays.controller.js"></script> 


<script src="calendar/controllers/calendar.controllers.js"></script> 
<script src="calendar/services/calendar.service.js"></script> 
<script src="utils/directives/my-checkbox.directive.js"></script> 
<script src="calendar/controllers/island-calendar.controller.js"></script> 
<script src="calendar/controllers/giustificativi.controller.js"></script> 
<script src="utils/directives/select-option.directive.js"></script> 
<script src="calendar/services/giustificativi.service.js"></script> 

<!-- endbuild --> 
</body> 
</html> 

Gruntfile.js

// Generated on 2016-06-24 using generator-angular 0.15.1 
'use strict'; 

// # Globbing 
// for performance reasons we're only matching one level down: 
// 'test/spec/{,*/}*.js' 
// use this if you want to recursively match all subfolders: 
// 'test/spec/**/*.js' 

module.exports = function (grunt) { 

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

    // Automatically load required Grunt tasks 
    require('jit-grunt')(grunt, { 
    useminPrepare: 'grunt-usemin', 
    ngtemplates: 'grunt-angular-templates', 
    cdnify: 'grunt-google-cdn' 
    }); 

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

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

    // Project settings 
    yeoman: appConfig, 

    // Watches files for changes and runs tasks based on the changed files 
    watch: { 
     bower: { 
     files: ['bower.json'], 
     tasks: ['wiredep'] 
     }, 
     js: { 
     files: ['<%= yeoman.app %>/**/*.js'], 
     tasks: ['newer:jshint:all', 'newer:jscs:all'], 
     options: { 
      livereload: '<%= connect.options.livereload %>' 
     } 
     }, 
     jsTest: { 
     files: ['test/spec/{,*/}*.js'], 
     tasks: ['newer:jshint:test', 'newer:jscs:test', 'karma'] 
     }, 
     styles: { 
     files: ['<%= yeoman.app %>/**/*.css'], 
     tasks: ['newer:copy:styles', 'postcss'] 
     }, 
     gruntfile: { 
     files: ['Gruntfile.js'] 
     }, 
     livereload: { 
     options: { 
      livereload: '<%= connect.options.livereload %>' 
     }, 
     files: [ 
      '<%= yeoman.app %>/**/*.html', 
      '.tmp/**/*.css', 
      '<%= yeoman.app %>/**/*.css', 
      '<%= yeoman.app %>/images/{,*/}*.{png,jpg,jpeg,gif,webp,svg}' 
     ] 
     } 
    }, 

    // 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: 35729 
     }, 
     livereload: { 
     options: { 
      open: true, 
      middleware: function (connect) { 
      return [ 
       connect.static('.tmp'), 
       connect().use(
       '/bower_components', 
       connect.static('./bower_components') 
      ), 
       connect().use(
       '/app/styles', 
       connect.static('./app/styles') 
      ), 
       connect.static(appConfig.app) 
      ]; 
      } 
     } 
     }, 
     test: { 
     options: { 
      port: 9001, 
      middleware: function (connect) { 
      return [ 
       connect.static('.tmp'), 
       connect.static('test'), 
       connect().use(
       '/bower_components', 
       connect.static('./bower_components') 
      ), 
       connect.static(appConfig.app) 
      ]; 
      } 
     } 
     }, 
     dist: { 
     options: { 
      open: true, 
      base: '<%= yeoman.dist %>' 
     } 
     } 
    }, 

    // Make sure there are no obvious mistakes 
    jshint: { 
     options: { 
     jshintrc: '.jshintrc', 
     reporter: require('jshint-stylish') 
     }, 
     all: { 
     src: [ 
      'Gruntfile.js', 
      '<%= yeoman.app %>/**/*.js' 
     ] 
     }, 
     test: { 
     options: { 
      jshintrc: 'test/.jshintrc' 
     }, 
     src: ['test/spec/{,*/}*.js'] 
     } 
    }, 

    // Make sure code styles are up to par 
    jscs: { 
     options: { 
     config: '.jscsrc', 
     verbose: true 
     }, 
     all: { 
     src: [ 
      'Gruntfile.js', 
      '<%= yeoman.app %>/**/*.js' 
     ] 
     }, 
     test: { 
     src: ['test/spec/{,*/}*.js'] 
     } 
    }, 

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

    // Add vendor prefixed styles 
    postcss: { 
     options: { 
     processors: [ 
      require('autoprefixer-core')({browsers: ['last 1 version']}) 
     ] 
     }, 
     server: { 
     options: { 
      map: true 
     }, 
     files: [{ 
      expand: true, 
      cwd: '.tmp/styles/', 
      src: '{,*/}*.css', 
      dest: '.tmp/styles/' 
     }] 
     }, 
     dist: { 
     files: [{ 
      expand: true, 
      cwd: '.tmp/styles/', 
      src: '{,*/}*.css', 
      dest: '.tmp/styles/' 
     }] 
     } 
    }, 

    // Automatically inject Bower components into the app 
    wiredep: { 
     app: { 
     src: ['<%= yeoman.app %>/index.html'], 
     ignorePath: /\.\.\// 
     }, 
     test: { 
     devDependencies: true, 
     src: '<%= karma.unit.configFile %>', 
     ignorePath: /\.\.\//, 
     fileTypes:{ 
      js: { 
      block: /(([\s\t]*)\/{2}\s*?bower:\s*?(\S*))(\n|\r|.)*?(\/{2}\s*endbower)/gi, 
      detect: { 
       js: /'(.*\.js)'/gi 
      }, 
      replace: { 
       js: '\'{{filePath}}\',' 
      } 
      } 
     } 
     } 
    }, 

    // Renames files for browser caching purposes 
    filerev: { 
     dist: { 
     src: [ 
      '<%= yeoman.dist %>/**/*.js', 
      '<%= yeoman.dist %>/**/*.css', 
      '<%= yeoman.dist %>/images/{,*/}*.{png,jpg,jpeg,gif,webp,svg}', 
      '<%= yeoman.dist %>/styles/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.app %>/index.html', 
     options: { 
     dest: '<%= yeoman.dist %>', 
     flow: { 
      html: { 
      steps: { 
       js: ['concat', 'uglifyjs'], 
       css: ['cssmin'] 
      }, 
      post: {} 
      } 
     } 
     } 
    }, 

    // Performs rewrites based on filerev and the useminPrepare configuration 
    usemin: { 
     html: ['<%= yeoman.dist %>/**/*.html'], 
     css: ['<%= yeoman.dist %>/**/*.css'], 
     js: ['<%= yeoman.dist %>/**/*.js'], 
     options: { 
     assetsDirs: [ 
      '<%= yeoman.dist %>', 
      '<%= yeoman.dist %>/images', 
      '<%= yeoman.dist %>/styles' 
     ], 
     patterns: { 
      js: [[/(images\/[^''""]*\.(png|jpg|jpeg|gif|webp|svg))/g, 'Replacing references to images']] 
     } 
     } 
    }, 

    // The following *-min tasks will produce minified files in the dist folder 
    // By default, your `index.html`'s <!-- Usemin block --> will take care of 
    // minification. These next options are pre-configured if you do not wish 
    // to use the Usemin blocks. 
    // cssmin: { 
    // dist: { 
    //  files: { 
    //  '<%= yeoman.dist %>/styles/main.css': [ 
    //   '.tmp/styles/{,*/}*.css' 
    //  ] 
    //  } 
    // } 
    // }, 
    // uglify: { 
    // dist: { 
    //  files: { 
    //  '<%= yeoman.dist %>/scripts/scripts.js': [ 
    //   '<%= yeoman.dist %>/scripts/scripts.js' 
    //  ] 
    //  } 
    // } 
    // }, 
    // concat: { 
    // dist: {} 
    // }, 

    imagemin: { 
     dist: { 
     files: [{ 
      expand: true, 
      cwd: '<%= yeoman.app %>/images', 
      src: '{,*/}*.{png,jpg,jpeg,gif}', 
      dest: '<%= yeoman.dist %>/images' 
     }] 
     } 
    }, 

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

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

    ngtemplates: { 
     dist: { 
     options: { 
      module: 'operatoreSmartApp', 
      htmlmin: '<%= htmlmin.dist.options %>', 
      usemin: 'application/application.js' 
     }, 
     cwd: '<%= yeoman.app %>', 
     src: '**/*.html', 
     dest: '.tmp/templateCache.js' 
     } 
    }, 

    // ng-annotate tries to make the code safe for minification automatically 
    // by using the Angular long form for dependency injection. 
    ngAnnotate: { 
     dist: { 
     files: [{ 
      expand: true, 
      cwd: '.tmp/concat/scripts', 
      src: '*.js', 
      dest: '.tmp/concat/scripts' 
     }] 
     } 
    }, 

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

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

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

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


    grunt.registerTask('serve', 'Compile then start a connect web server', function (target) { 
    if (target === 'dist') { 
     return grunt.task.run(['build', 'connect:dist:keepalive']); 
    } 

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

    grunt.registerTask('server', 'DEPRECATED TASK. Use the "serve" task instead', function (target) { 
    grunt.log.warn('The `server` task has been deprecated. Use `grunt serve` to start a server.'); 
    grunt.task.run(['serve:' + target]); 
    }); 

    grunt.registerTask('test', [ 
    'clean:server', 
    'wiredep', 
    'concurrent:test', 
    'postcss', 
    'connect:test', 
    'karma' 
    ]); 

    grunt.registerTask('build', [ 
    'clean:dist', 
    'wiredep', 
    'useminPrepare', 
    'concurrent:dist', 
    'postcss', 
    'ngtemplates', 
    'concat', 
    'ngAnnotate', 
    'copy:dist', 
    'cdnify', 
    'cssmin', 
    'uglify', 
    'filerev', 
    'usemin', 
    'htmlmin' 
    ]); 

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

Поскольку мы понятия не имеем о том, что делает ваш файл gruntfile, и о остальном файле index.html, мы не можем помочь. –

+0

У index.html есть только ссылка bower_components и мои скрипты в угловом. Файл gruntfile.js генерируется с использованием генератора-углового 0.15.1. У меня проблема только с этим компонентом :( – Rinos

+0

Если вам нужна помощь, вам нужно сотрудничать. Поставьте себя на нашу обувь и спросите себя, как вы можете ответить на свой собственный вопрос. В основном она гласит: «У меня есть сценарий оболочки, и это удаляет файл. Можете ли вы мне помочь? ». Затем, когда его спросили« что содержит сценарий оболочки? », вы отвечаете« только на некоторые инструкции ». Поместите соответствующий код: ваш файл grunt и ваш index.html. Необычные мастера. –

ответ

2

Ваш сборки использует wiredep заменить все между

<!-- build:js(.) scripts/vendor.js --> 
<!-- bower:js --> 

и

<!-- endbower --> 
<!-- endbuild --> 

одним сценарием, загружающим scripts/vendor.js, сгенерированный сборкой и содержащий все основные файлы js, найденные в компонентах bower. Поэтому вам нужно добавить дополнительный файл за пределы этих комментариев или добавить ваши угловые-locale_it-it.js в основные файлы зависимости от углового-i18n, объявление описано в wiredep documentation.

+0

Спасибо, я выполнил ваше второе предложение, сделав переопределения – Rinos

+1

Чтобы уточнить: добавьте локальный файл i18n между '' и ' ' – davidkonrad