首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >前处理不处理代码块

前处理不处理代码块
EN

Stack Overflow用户
提问于 2014-03-01 19:43:34
回答 1查看 961关注 0票数 0

我已经阅读了所有的文档和所有我能找到的关于咕噜预处理的帖子,但仍然无法让它起作用。这似乎是一个非常有用的选择,并帮助使这一工作非常感谢。

我的Gruntfile.js中有以下内容

代码语言:javascript
复制
    env: {
        dev: {
            NODE_ENV: 'DEVELOPMENT',
        },
        dist: {
            NODE_ENV: 'PRODUCTION',
        },
    },

    preprocess: {
        dev: {
            options: {
                context: {
                    NODE_ENV: 'DEVELOPMENT'
                },
            },
            files: {
                'app/wp-content/themes/nuvo/footer.php' : 'app/wp-content/themes/nuvo/footer-template.php'
            },
        },
        dist: {
            options: {
                context: {
                    NODE_ENV: 'PRODUCTION'
                },
            },
            files: {
                'dist/wp-content/themes/nuvo/footer.php' : 'app/wp-content/themes/nuvo/footer-template.php'
            },
        },
    },

其次是:

代码语言:javascript
复制
grunt.registerTask('default', [
    'clean:dist',
    'env:dev',
    'preprocess:dev',
    'browser_sync',
    'watch',
    'jshint'
]);

我的脚注-template.php文件有以下内容:

代码语言:javascript
复制
<!-- @if NODE_ENV == 'DEVELOPMENT' --><!-- @endif -->
<!-- @if NODE_ENV == 'PRODUCTION' -->
<script>
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-*******-*']);
_gaq.push(['_trackPageview']);

(function() {
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>
<!-- @endif -->

当我运行默认的grunt任务时,会生成footer.php文件,但是没有进行任何预处理,它看起来与页脚-template.php文件完全相同。对此的任何帮助都是非常感谢的!

当我咕哝的时候,这就是我得到的--详细的:

代码语言:javascript
复制
Running "env:dev" (env) task
Verifying property env.dev exists in config...OK
File: [no files]
Options: (none)

Running "preprocess:dev" (preprocess) task
Verifying property preprocess.dev exists in config...OK
Files: app/wp-content/themes/nuvo/footer-template.php -> app/wp-content/themes/nuvo/footer.php
Verifying property preprocess exists in config...OK
Options: context={"NODE_ENV":"DEVELOPMENT"}
Reading app/wp-content/themes/nuvo/footer-template.php...OK
Writing app/wp-content/themes/nuvo/footer.php...OK
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-02 18:08:25

好的,作为冰雹玛丽解决方案,我将页脚模板文件从.php文件更改为.html文件(仍然输出到.php文件),并且工作正常。我猜--预处理只会解析.html文件。

下面是我的预处理任务:

代码语言:javascript
复制
        preprocess: {
        dev: {
            options: {
                context: {
                    NODE_ENV: 'DEVELOPMENT'
                },
            },
            files: {
                'app/wp-content/themes/nuvo/footer.php' : 'app/wp-content/themes/nuvo/footer-template.html'
            },
        },
        dist: {
            options: {
                context: {
                    NODE_ENV: 'PRODUCTION'
                },
            },
            files: {
                'dist/wp-content/themes/nuvo/footer.php' : 'app/wp-content/themes/nuvo/footer-template.php'
            },
        },
    },

下面是.html模板文件中的代码块:

代码语言:javascript
复制
<!-- @if NODE_ENV == 'DEVELOPMENT' --><!-- @endif -->
<!-- @if NODE_ENV == 'PRODUCTION' -->
<script>
    var _gaq = _gaq || [];
    _gaq.push(['_setAccount', 'UA-*******-*']);
    _gaq.push(['_trackPageview']);

    (function() {
        var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
    })();
</script>
<!-- @endif -->

我也不再需要咕噜-env模块,它只与咕噜-预处理模块一起工作。希望这能在未来节省一些时间!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22119403

复制
相关文章

相似问题

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