【问题标题】:Linking assets in express js depending on environment根据环境在 express js 中链接资产
【发布时间】:2014-12-01 11:37:28
【问题描述】:

有没有一种方法可以根据环境在我的 html 文件中链接资产(准确地说:在我的例子中是 nunjucks 文件)?我想在 dev env 中包含几个部分 *.css 或 *.js 文件以便更轻松地调试它,并在 prod env 中包含一个连接的 *.min.css 和 *.min.js 文件(有点像 Symfony 中的资产)。

【问题讨论】:

    标签: javascript node.js express assets nunjucks


    【解决方案1】:

    您可能需要通过构建过程来执行此操作。好的任务跑者包括GruntGulp

    您可以使用grunt-usemin 之类的内容。这将允许您将直接脚本/链接标签放在您的 html 中,然后运行 ​​grunt 命令来组合它们。

    【讨论】:

    • 这正是我想要的 :) 顺便说一句,我正在使用 gulp,所以那将是 gulp-usemin
    • 完美。把我的大部分东西都转移到 gulp 中。似乎每个 grunt 包都有一个 gulp 包。
    【解决方案2】:

    它会根据您的模板系统而有所不同,但基本情况如下:

    在控制器中 - 使 env 可用于您的模板:

    res.render("template", {
     env: process.env.NODE_ENV || 'development'
    });
    

    模板:

    {% if env === 'development' %}
    <script>....</script>
    <script>....</script>   
    {% else %}
    <script src="prod.min.js"></script>
    {% endif %}
    

    此外,使用@vernak2539 的答案,使用 gulp 或 grunt 和 minify/uglify/concat 插件构建您的 prod.min.js 文件,或者使用 CodeKit 之类的东西“手动”完成。

    【讨论】:

    • 感谢您的回答。我一直在使用这种方法,但在我看来它总是不够适合这项任务。 @vernak2539 给出了我预期的正确答案:)
    • 太棒了——我同时使用这两种文件,因为我需要将所有 js 文件分开用于开发并缩小用于生产。我尝试使用 gulp onlu 方法,它使调试更加困难。
    猜你喜欢
    • 1970-01-01
    • 2017-05-08
    • 2019-08-06
    • 1970-01-01
    • 1970-01-01
    • 2023-03-13
    • 1970-01-01
    • 2020-06-23
    • 2013-09-30
    相关资源
    最近更新 更多