首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >gulp usemin不输出js文件

gulp usemin不输出js文件
EN

Stack Overflow用户
提问于 2016-08-20 02:23:57
回答 1查看 558关注 0票数 2

我正在尝试使用gulp-usemin来捆绑我的CSSjavascript文件以用于生产。gulp-usemin可以很好地处理我的CSS文件,但是没有输出任何与我的javascript文件相关的内容。有人能指出我哪里做错了吗?

我遇到了类似于uglified files are not rewritten in html file using gulp-usemin的问题,但建议的解决方案不起作用。

作为参考,我的node版本是v0.12.1,我的gulp版本如下:

代码语言:javascript
复制
"devDependencies": {
  "gulp": "^3.9.1",
  "gulp-minify-css": "^1.2.4",
  "gulp-rev": "^7.1.2",
  "gulp-uglify": "^2.0.0",
  "gulp-usemin": "^0.3.24"
}

index.html

代码语言:javascript
复制
<html>
<head>
  <meta charset="utf-8">

  <!-- build:css css/site.css -->
  <link rel="stylesheet" href="stylesheets/style.css" type="text/css" media="all" />
  <link rel="stylesheet" href="bower_components/font-awesome/css/font-awesome.min.css" type="text/css" media="all" />
  <!-- endbuild -->

  <!-- build:js js/site.js -->
  <script type="text/javascript" src='bower_components/gsap/src/minified/TweenMax.min.js'> </script>
  <script type="text/javascript" src='bower_components/d3/d3.js'> </script>
  <script type="text/javascript" src='bower_components/d3-tip/index.js'> </script>
  <script type="text/javascript" src='bower_components/moment/moment.js'> </script>
  <script type="text/javascript" src='chart.js'> </script>
  <!-- endbuild -->

</head>
<body>

</body>
</html>

gulp file

代码语言:javascript
复制
var gulp = require('gulp');
var uglify = require('gulp-uglify');
var usemin = require('gulp-usemin');
var minifyCss = require('gulp-minify-css');

gulp.task('build', function() {
  return gulp.src(['index.html'])
    .pipe(usemin({
      css: [minifyCss()],
      js: [uglify()]
    }))
  .pipe(gulp.dest('dist/'));
});

在运行gulp build之后,我生成了一个dist目录,如下所示

代码语言:javascript
复制
dist/
  css/
    site.css
  index.html

我生成的index.html是

代码语言:javascript
复制
<html>
<head>
  <meta charset="utf-8">

  <link rel="stylesheet" href="css/site.css" media="all"/>

</head>
<body>

</body>
</html>

我是不是明显漏掉了什么?为什么css块可以工作,而js块会静默失败?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-20 02:50:30

gulp-usemin使用的regex不允许在开始<script>和结束</script>标记之间有任何空格。它也不允许type="text/javascript"属性。

有关匹配和非匹配的示例,请参阅this regex101 page

所以这就是:

代码语言:javascript
复制
<!-- build:js js/site.js -->
<script type="text/javascript" src='bower_components/gsap/src/minified/TweenMax.min.js'> </script>
<script type="text/javascript" src='bower_components/d3/d3.js'> </script>
<script type="text/javascript" src='bower_components/d3-tip/index.js'> </script>
<script type="text/javascript" src='bower_components/moment/moment.js'> </script>
<script type="text/javascript" src='chart.js'> </script>
<!-- endbuild -->

应该是这样的:

代码语言:javascript
复制
<!-- build:js js/site.js -->
<script src='bower_components/gsap/src/minified/TweenMax.min.js'></script>
<script src='bower_components/d3/d3.js'></script>
<script src='bower_components/d3-tip/index.js'></script>
<script src='bower_components/moment/moment.js'></script>
<script src='chart.js'></script>
<!-- endbuild -->
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39045541

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档