如何让 docpad 咕噜的骨架最小供应商 js 文件与实时重新加载

How to have a the docpad grunt skeleton min vendor js files with live reload

本文关键字:实时 文件 js 新加载 加载 供应商 docpad      更新时间:2023-09-26

我正在使用骨架#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.

编辑我的脚本.js将其扔到混合中,但我的供应商 js 文件都没有用它渲染,这同样没用。 grunt-cssmin 无论如何都会grunt-config.json渲染所有 SCSS/CSS 文件,这工作正常。 将我的 js 从 /files/vendor 移动到 /documents/scripts 并没有改变这种行为。

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

如果我能做到以下任一情况,那就太好了:

a) 每次都grunt-config.json挖掘和压缩所有 JS 文件

b)在开发环境中没有咕噜咕噜的最小JS文件

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

不理想,但足够有效:

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命令的三行被注释掉了。

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

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