如何使用实时重新加载docpad grunt骨架min供应商js文件

时间:2013-11-04 18:29:17

标签: javascript gruntjs docpad livereload

我正在使用骨架#2,HTML5BP + Grunt。我docpad run第一次发生以下情况:

info: LiveReload listening to new socket on channel /docpad-livereload
Performing writeFiles (postparing) at 0/1 0% [...] Running "min:js" (min) task
File "../out/scripts/all.min.js" created.
Uncompressed size: 298495 bytes.
Compressed size: 38257 bytes gzipped (106756 bytes minified).

这是应该的。但是,如果我更改模板或文档文件,则使用livereload插件,我得到:

--Running "min:js" (min) task
File "../out/scripts/all.min.js" created.
Uncompressed size: 0 bytes.

编辑我的script.js会把它抛到混合中,但我的供应商js文件都没有用它渲染,这也没用。 grunt-cssmin无论如何都会呈现所有scss / css文件grunt-config.json,这样可以正常工作。将我的js从/files/vendor移动到/documents/scripts并未改变此行为。

我做了一点点蠢事,但我是新来的咕噜咕噜,没有任何东西跳出来。

如果我可以,那就太好了:

a)每次grunt-config.json缩进并压缩所有JS文件

b)在开发环境中没有grunt min js文件

如果我想对javascript的某些内容进行任何更改,我需要ctrl-c docpad然后再次运行它,这就是meh。

1 个答案:

答案 0 :(得分:0)

不理想,但足够有效:

events:

    # Write After
    # Used to minify our assets with grunt
    writeAfter: (opts,next) ->
        # Prepare
        docpad = @docpad
        rootPath = docpad.config.rootPath
        balUtil = require 'bal-util'
        _ = require 'underscore'

        # Make sure to register a grunt `default` task
        command = ["#{rootPath}/node_modules/.bin/grunt", 'default']

        # Execute
        balUtil.spawn command, {cwd:rootPath,output:true}, ->
            src = []
            gruntConfig = require './grunt-config.json'
            _.each gruntConfig, (value, key) ->
                src = src.concat _.flatten _.pluck value, 'src'
            #_.each src, (value) ->
            #    balUtil.spawn ['rm', value], {cwd:rootPath, output:false}, ->
            #balUtil.spawn ['find', '.', '-type', 'd', '-empty', '-exec', 'rmdir', '{}', '\;'], {cwd:rootPath+'/out', output:false}, ->
            next()

        # Chain
        @

围绕" balUtil"其中执行find / rm命令已被注释掉。

由于"未压缩"文件遗留下来 - 但这并不是真正的世界末日。最终,实时重新加载到空白页面更令人沮丧。

可能有一种方法可以进一步增强这一点,以检测实时重新加载(开发)与生成生产版本,但我还没有意识到这一点。