2

我正在使用骨架#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并没有改变这种行为。

我已经做了一些探索,但我是新来的咕噜声,没有任何东西跳出来。

如果我可以:

grunt-config.jsona)每次都将所有 JS 文件压缩并压缩

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

就像我想对有关 javascript 的内容进行任何更改一样,我需要 ctrl-c docpad 然后再次运行它,这就是 meh。

4

1 回答 1

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
        @

执行 find/rm 命令的“balUtil”周围的三行已被注释掉。

不理想,因为“未压缩”文件被遗弃了——但这并不是真正的世界末日。最终,实时重新加载到空白页面有点令人沮丧。

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

于 2014-05-08T02:43:53.927 回答