【问题标题】:different scripts in html in development and production开发和生产中 html 中的不同脚本
【发布时间】:2013-12-02 13:54:37
【问题描述】:

我正在使用 concat grunt 任务:

concat: {
    dist: {
        src: [
            '../assets/js/jquery.js',
            '../assets/js/underscore.js',
            '../assets/js/pusher.js',
            '../assets/js/angular.js',
            '../assets/js/angular-resource.js',
            '../assets/js/angular-sanitize.js',

            '../core/module.js',
            '../core/**/*.js',

            'src/js/**/*.js'
        ],
        dest: 'dist/embed.js'
    }
},

最终我得到一个脚本文件,其中包含 dist/embed.js 中的所有脚本。
我在 src/index.html 中也有一个 html 文件。
我正在寻找一种在运行开发任务时注入所有这些脚本文件并在生产任务中仅注入 dist/embed.js 的方法。我正在尝试也不再次编写 index.html 中的所有脚本,但我想使用 concat 任务中的脚本列表。
有谁知道如何处理这个问题?
我会非常感谢示例。

【问题讨论】:

  • 只使用一个条件 -> if (process.env.NODE_ENV == 'development')
  • 我不知道如何准确实现这一点,但您应该查看grunt-env,它允许您为链中的未来任务定义环境变量。
  • @adeneo:但是这样我就必须手动将我所有的开发脚本标签也添加到 index.html!

标签: javascript node.js gruntjs


【解决方案1】:

我在unbox 中所做的是循环通过my view layout 中的上下文变量,加载所有必要的 CSS 和 JS。

这些被传递给静态编译 Jade 视图的 Grunt 任务,因此您可以共享配置来为每种情况生成 ../assets/js/jquery.js/js/jquery.js 样式字符串。

另一个选项是使用grunt-usemin,虽然我只用它来更新 revved 文件,但我知道它也可以用来转换这些标签。如果您确实想将 usemin 用于 Jade 文件,usemin-patterns 可能会派上用场。

【讨论】:

  • usemin 的问题是我必须在所有脚本文件夹中提及每个脚本。在 concat 任务中,我可以提及脚本目录并要求加载所有目录。你知道怎么做吗?
猜你喜欢
  • 2016-10-18
  • 2019-11-10
  • 1970-01-01
  • 2020-07-29
  • 1970-01-01
  • 2021-06-23
  • 1970-01-01
  • 2017-07-27
  • 1970-01-01
相关资源
最近更新 更多