Home  >  Q&A  >  body text

javascript - Grunt如何在开发模式下不合并js/css文件?

假设有a.jsb.js两个文件,在发布的时候需要将两个js文件合并为lib.js;开发的时候则不需要合并,直接引用源代码就好。

即在开发模式下,生成如下代码片段:

<script src="a.js"></script>
<script src="b.js"></script>

在生产环境中,生成如下代码片段:

<script src="lib.js"></script>

看了下grunt-contrib-uglify貌似没有提供此功能,不知道Grunt下有没有好的解决方案?
(嗯,对于css也有这样的需求)

PHP中文网PHP中文网2748 days ago541

reply all(7)I'll reply

  • 怪我咯

    怪我咯2017-04-10 14:29:09

    推荐使用requirejs管理模块,发布上线时使用grunt-contrib-requirejs合并、压缩代码css和js代码
    图片压缩使用grunt-contrib-imagemin
    html压缩使用grunt-contrib-htmlmin
    静态资源可以使用grunt-filerev和grunt-usemin进行文件重命名和资源替换,CDN前缀替换可以使用grunt-text-replace

    或者直接使用yoeman,但感觉yoeman还是有些笨重

    http://tuan.sogou.com/201405.html

    这个页面就是使用以上几个插件做的完整例子,可以参考一下

    reply
    0
  • 巴扎黑

    巴扎黑2017-04-10 14:29:09

    我发现现在的人回答问题的时候都不带好好审题的么?不管会不会都乱答一通,真是蛋疼。
    话说,我也是搜这个问题才到这的,然而并没有什么卵用,根本没看到有价值的答案。现在我的做法就是:

    uglify: {
      one2one: [{
        expand: true,
        cwd: './src/js/',
        src: ['*.js'],
        dest: '.dist/js/'
      }]
    }
    

    reply
    0
  • 黄舟

    黄舟2017-04-10 14:29:09

    合并的话,不是用grunt-contrib-concat么?concat支持多任务。

    uglify是minify用的。

    reply
    0
  • 迷茫

    迷茫2017-04-10 14:29:09

    对这个问题其实有多种解决方案,最简单的也是最易实现的请见:grunt-usemin

    reply
    0
  • PHP中文网

    PHP中文网2017-04-10 14:29:09

    那你还不如用grunt-contrib-requirejs呢。
    测试的文件,命名为dev,打包后,打包到build文件中。
    测试就在dev文件夹下测试页面,想测试打包后的文件是否正确,就在build中测试。

    reply
    0
  • 迷茫

    迷茫2017-04-10 14:29:09

    推荐楼主使用yeoman,会省很多这样的心的,你只用正常的在页面内引用js,发布的时候已经配置好usemin等任务帮你合并成一个引用

    reply
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-10 14:29:09

    uglify可以实现合并的效果,不过是压缩版的。。

    reply
    0
  • Cancelreply