Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/431.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 格朗特没有';t更换鲍尔_组件_Javascript_Gruntjs_Yeoman_Bower_Gruntfile - Fatal编程技术网

Javascript 格朗特没有';t更换鲍尔_组件

Javascript 格朗特没有';t更换鲍尔_组件,javascript,gruntjs,yeoman,bower,gruntfile,Javascript,Gruntjs,Yeoman,Bower,Gruntfile,我有这张照片。当我运行“grunt”时,dist文件夹不会更改bower_components/*.js中的所有脚本,只更改其中的一部分 下面是dist文件夹中index.html的示例 <script src="bower_components/jquery/dist/jquery.js"></script> <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.3.11/angular.min.js"&

我有这张照片。当我运行“grunt”时,dist文件夹不会更改bower_components/*.js中的所有脚本,只更改其中的一部分

下面是dist文件夹中index.html的示例

<script src="bower_components/jquery/dist/jquery.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.3.11/angular.min.js"></script>
<script src="bower_components/angular-bootstrap/ui-bootstrap.js"></script>
<script src="bower_components/angular-bootstrap/ui-bootstrap-tpls.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.3.11/angular-resource.min.js"></script>
<script src="bower_components/angular-cookies/angular-cookies.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.3.11/angular-sanitize.min.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.3.11/angular-animate.min.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.3.11/angular-touch.min.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.3.11/angular-route.min.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.3.11/angular-messages.min.js"></script>
<script src="bower_components/angular-utf8-base64/angular-utf8-base64.js"></script>
<script src="bower_components/ng-table/ng-table.js"></script>
<script src="bower_components/lodash/dist/lodash.js"></script>
<script src="bower_components/angular-growl-v2/build/angular-growl.js"></script>
<script src="bower_components/nya-bootstrap-select/dist/js/nya-bs-select.js"></script>
这是我的package.json

{
  "name": "civilizationweb",
  "version": "0.0.0",
  "dependencies": {},
  "devDependencies": {
    "grunt": "^0.4.5",
    "grunt-autoprefixer": "^0.7.3",
    "grunt-concurrent": "^0.5.0",
    "grunt-contrib-clean": "^0.5.0",
    "grunt-contrib-concat": "^0.4.0",
    "grunt-contrib-connect": "^0.7.1",
    "grunt-contrib-copy": "^0.5.0",
    "grunt-contrib-cssmin": "^0.9.0",
    "grunt-contrib-htmlmin": "^0.3.0",
    "grunt-contrib-imagemin": "^0.8.1",
    "grunt-contrib-jshint": "^0.10.0",
    "grunt-contrib-uglify": "^0.4.0",
    "grunt-contrib-watch": "^0.6.1",
    "grunt-filerev": "^0.2.1",
    "grunt-google-cdn": "^0.4.0",
    "grunt-karma": "^0.9.0",
    "grunt-newer": "^0.7.0",
    "grunt-ng-annotate": "^0.10.0",
    "grunt-svgmin": "^0.4.0",
    "grunt-usemin": "^2.1.1",
    "grunt-wiredep": "^1.7.0",
    "jshint-stylish": "^0.2.0",
    "karma": "^0.12.24",
    "karma-jasmine": "^0.1.5",
    "karma-phantomjs-launcher": "^0.1.4",
    "load-grunt-tasks": "^0.4.0",
    "time-grunt": "^0.3.1"
  },
  "engines": {
    "node": ">=0.10.0"
  },
  "scripts": {
    "test": "grunt test"
  }
}

检查您是否已在html文件中设置。这就是触发grunt uglyfy/css min任务的原因。 或者,您可以在grunt配置文件中取消对这些任务的注释,并确保在构建任务的按钮中取消注释这些任务。
祝您好运

检查您是否已在html文件中设置。这就是触发grunt uglyfy/css min任务的原因。 或者,您可以在grunt配置文件中取消对这些任务的注释,并确保在构建任务的按钮中取消注释这些任务。
祝你好运

除非在构建过程中告诉grunt将这些文件复制到/dist文件夹,否则grunt不会做任何事情。您可以使用grunt copy来执行此操作

// 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',
        'server/**/*'
      ]
    }]
  },
  styles: {
    expand: true,
    cwd: '<%= yeoman.client %>',
    dest: '.tmp/',
    src: ['{app,components}/**/*.css']
  }
},
//将剩余文件复制到其他任务可以使用的位置
副本:{
地区:{
档案:[{
是的,
多特:没错,
cwd:“”,
目的地:'/public',
src:[
“*.{ico,png,txt}”,
“.htaccess”,
“bower_组件/***”,
'资产/图像/{,*/}*{webp}',
“资产/字体/***”,
'index.html'
]
}, {
是的,
cwd:“.tmp/images”,
目标:'/public/assets/images',
src:['generated/*']
}, {
是的,
目标:'',
src:[
'package.json',
“服务器/***”
]
}]
},
风格:{
是的,
cwd:“”,
目标:'.tmp/',
src:['{app,components}/***.css']
}
},
我建议您也使用concat/usemin来连接所有javascript

<!-- build:js({.tmp,client}) app/concat.js -->
<script src="app/app1.js"></script>
<script src="app/app2.js"></script>
<script src="app/app3.js"></script>
<!-- endbuild -->


这将使用
标记之间的脚本标记创建一个concat.js文件。然后可以使用grunt copy复制此文件。

除非在生成过程中告诉grunt将这些文件复制到/dist文件夹,否则它不会做任何事情。您可以使用grunt copy来执行此操作

// 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',
        'server/**/*'
      ]
    }]
  },
  styles: {
    expand: true,
    cwd: '<%= yeoman.client %>',
    dest: '.tmp/',
    src: ['{app,components}/**/*.css']
  }
},
//将剩余文件复制到其他任务可以使用的位置
副本:{
地区:{
档案:[{
是的,
多特:没错,
cwd:“”,
目的地:'/public',
src:[
“*.{ico,png,txt}”,
“.htaccess”,
“bower_组件/***”,
'资产/图像/{,*/}*{webp}',
“资产/字体/***”,
'index.html'
]
}, {
是的,
cwd:“.tmp/images”,
目标:'/public/assets/images',
src:['generated/*']
}, {
是的,
目标:'',
src:[
'package.json',
“服务器/***”
]
}]
},
风格:{
是的,
cwd:“”,
目标:'.tmp/',
src:['{app,components}/***.css']
}
},
我建议您也使用concat/usemin来连接所有javascript

<!-- build:js({.tmp,client}) app/concat.js -->
<script src="app/app1.js"></script>
<script src="app/app2.js"></script>
<script src="app/app3.js"></script>
<!-- endbuild -->


这将使用
标记之间的脚本标记创建一个concat.js文件。然后可以使用grunt copy复制此文件。

我认为您需要在index.html中添加注释,告诉grunt CSS和JS文件应该添加到哪里。此外,如果您手动更改这些标记之间的某些内容,它将在grunt的下一次重新启动时被覆盖(这就是我注意到的,我不确定它是否是标准功能)


... HTML标记,脚本/链接标记列表。
以下是角度生成器生成的内容:

<!-- build:js({client,node_modules}) app/vendor.js -->
  <!-- bower:js -->
  <!-- endbower --><% if(filters.socketio) { %>
  <script src="socket.io-client/socket.io.js"></script><% } %>
<!-- endbuild -->

    <!-- build:js({.tmp,client}) app/app.js -->
    <script src="app/app.js"></script>
      <!-- injector:js -->
      <!-- endinjector -->
    <!-- endbuild -->


您需要使用grunt的build标签(bower代表bower)进行封装。

我认为您需要在index.html中添加注释,告诉grunt CSS和JS文件应该添加到哪里。此外,如果您手动更改这些标记之间的某些内容,它将在grunt的下一次重新启动时被覆盖(这就是我注意到的,我不确定它是否是标准功能)


... HTML标记,脚本/链接标记列表。
以下是角度生成器生成的内容:

<!-- build:js({client,node_modules}) app/vendor.js -->
  <!-- bower:js -->
  <!-- endbower --><% if(filters.socketio) { %>
  <script src="socket.io-client/socket.io.js"></script><% } %>
<!-- endbuild -->

    <!-- build:js({.tmp,client}) app/app.js -->
    <script src="app/app.js"></script>
      <!-- injector:js -->
      <!-- endinjector -->
    <!-- endbuild -->


您需要使用grunt的build标记(bower用于bower)进行封装。

grunfile.js中的usemin任务将查找

<!-- build:{{type}}  {{path/fileName}} -->


并将这两个文件之间列出的所有文件连接成一个文件并缩小该文件。这个缩小的文件将被写入您在{{path/fileName}中提到的路径

…因此,如果我理解得很好,那么您的Grunfile就非常好,并且您的index.html中可能缺少usemin注释块

将所有链接和脚本标记放在usemin块之间

例如,对于您的bower组件,您可以使用如下内容

<!-- build:css(.) styles/vendor.css -->
  <!-- bower:css -->

    <link rel="stylesheet" href="bower_components/bootstrap/dist/css/bootstrap.css" />
    <link rel="stylesheet" href="bower_components/ng-table/ng-table.css">
    <link rel="stylesheet" href="bower_components/angular-growl-v2/build/angular-growl.css">
    <link rel="stylesheet" href="bower_components/nya-bootstrap-select/dist/css/nya-bs-select.css">

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


<!-- 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-aria/angular-aria.js"></script>
    <script src="bower_components/angular-cookies/angular-cookies.js"></script>
    <script src="bower_components/angular-messages/angular-messages.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>

  <!-- endbower -->
<!-- endbuild -->
<!-- build:css(.tmp) styles/main.css -->

  <link rel="stylesheet" href="styles/css1.css">
  <link rel="stylesheet" href="styles/css2.css">

<!-- endbuild -->

<!-- build:js({.tmp,app}) scripts/scripts.js -->

    <script src="scripts/app.js"></script>
    <script src="scripts/controllers/main.js"></script>
    <script src="scripts/controllers/about.js"></script>

<!-- endbuild -->

注意:您的所有bower组件css文件都将放在styles目录下的vendor.css中,即dist/styles/vendor.css,类似地,bower组件js文件将放在scripts目录下的vendor.js中,即dist/scripts/vendor.js

…对于您自己的js和css文件,您可以使用如下内容

<!-- build:css(.) styles/vendor.css -->
  <!-- bower:css -->

    <link rel="stylesheet" href="bower_components/bootstrap/dist/css/bootstrap.css" />
    <link rel="stylesheet" href="bower_components/ng-table/ng-table.css">
    <link rel="stylesheet" href="bower_components/angular-growl-v2/build/angular-growl.css">
    <link rel="stylesheet" href="bower_components/nya-bootstrap-select/dist/css/nya-bs-select.css">

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


<!-- 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-aria/angular-aria.js"></script>
    <script src="bower_components/angular-cookies/angular-cookies.js"></script>
    <script src="bower_components/angular-messages/angular-messages.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>

  <!-- endbower -->
<!-- endbuild -->
<!-- build:css(.tmp) styles/main.css -->

  <link rel="stylesheet" href="styles/css1.css">
  <link rel="stylesheet" href="styles/css2.css">

<!-- endbuild -->

<!-- build:js({.tmp,app}) scripts/scripts.js -->

    <script src="scripts/app.js"></script>
    <script src="scripts/controllers/main.js"></script>
    <script src="scripts/controllers/about.js"></script>

<!-- endbuild -->

注意:这里所有的css文件都将放在styles目录下的main.css中,即dist/styles/main.css,类似地,js文件将放在scripts目录下的main.js中,即dist/scripts/main.js


…希望有帮助:)

Grunfile.js中的usemin任务将查找

<!-- build:{{type}}  {{path/fileName}} -->


并将这两个文件之间列出的所有文件连接成一个文件并缩小该文件。这个缩小的文件将被写入您在{{path/fileName}中提到的路径

…因此,如果我理解得很好,那么您的Grunfile就非常好,并且您的index.html中可能缺少usemin注释块

将所有链接和脚本标记放在usemin块之间

例如,对于您的bower组件,您可以使用如下内容

<!-- build:css(.) styles/vendor.css -->
  <!-- bower:css -->

    <link rel="stylesheet" href="bower_components/bootstrap/dist/css/bootstrap.css" />
    <link rel="stylesheet" href="bower_components/ng-table/ng-table.css">
    <link rel="stylesheet" href="bower_components/angular-growl-v2/build/angular-growl.css">
    <link rel="stylesheet" href="bower_components/nya-bootstrap-select/dist/css/nya-bs-select.css">

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


<!-- 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-aria/angular-aria.js"></script>
    <script src="bower_components/angular-cookies/angular-cookies.js"></script>
    <script src="bower_components/angular-messages/angular-messages.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>

  <!-- endbower -->
<!-- endbuild -->
<!-- build:css(.tmp) styles/main.css -->

  <link rel="stylesheet" href="styles/css1.css">
  <link rel="stylesheet" href="styles/css2.css">

<!-- endbuild -->

<!-- build:js({.tmp,app}) scripts/scripts.js -->

    <script src="scripts/app.js"></script>
    <script src="scripts/controllers/main.js"></script>
    <script src="scripts/controllers/about.js"></script>

<!-- endbuild -->