RequireJS:根据环境加载不同的文件

2023-11-23

是否有根据当前项目环境(例如开发或生产)加载不同文件的功能?我的意思是,它可以帮助我透明地加载缩小或完整的文件。我读到有关多版本加载的内容,但多版本意味着我需要指定文件的版本。
例如,我的模块中有 module.js 文件。在这个文件中我需要加载 jQuery:

require(['jquery]);

但我有缩小版和完整版的 jQuery,我想加载不同的文件。我在配置中考虑这样的事情:

   require.config({
        paths: {
            'jquery' : function(){
                if( MODE == 'DEV' ){
                    return 'jquery';
                }else{
                    return 'jquery.min'
                }
            }
        }
    });

或者,也许,类似的东西。


如果你使用r.js 优化器那么这个过程可以为您处理。在你的scripts文件夹将所有模块、库和其他代码保留为开发目的而未压缩。我经常有这样的事情

scripts/
    lib/
    modules/

准备好部署时,创建一个build.js并配置各种选项。我将给出一个我使用过的类似配置的示例:

({
    baseUrl: '../scripts',
    dir: '../scripts.min',

    paths: {
        'jquery': 'lib/jquery'
    },

    removeCombined: true,

    optimize: 'uglify',
    preserveLicenseComments: false,
    uglify: {
        max_line_length: 3500,
        no_copyright: true
    },

    modules: [
        {
            name: 'module1'
        },
        {
            name: 'module2',
            exclude: ['jquery']
        }
    ]
})

有关每个选项的更多详细信息可以在这个示例配置中找到但我会提请注意dir and removeCombined

dir显然是你的脚本最终的位置。我倾向于在我的脚本旁边创建一个带有后缀的文件夹.min或类似的东西。然后,当您准备好投入生产时,只需更改您的需求配置即可baseUrl to scripts.min

require.config({
    baseUrl: '/scripts.min' // Now the site will load scripts from the optimised folder

    // Other options
})

默认情况下,r.js 会复制所有脚本,无论它们是否已经合并到另一个 js 文件中。设置removeCombined to true将确保您的scripts.min文件夹仅包含生产所需的文件。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

RequireJS:根据环境加载不同的文件 的相关文章

  • 验证以防止角度形式出现重复的形式值

    我有几个表单数组 我需要进行验证 以便每个表单行中的特定字段在所有表单数组中必须是唯一的 如果任何值出现多次 则两个表单字段都必须标记为红色 我设法编写了一个函数 以便如果这些字段有任何更改 该函数将返回 true false 但我不确定如
  • 如何使用 Angular 1.5 中的组件为每个页面设置标题

    我最近开始使用 Angular 1 5 组件 我的应用程序中有多个页面 所以我决定创建一个
  • 该脚本在 IE 中不起作用。我该如何修复它?

    有一个脚本可以根据用户的显示器屏幕分辨率更改页面模板 但是 它在 IE 中不起作用 请告知如何修复它 table align center tr td head td tr tr td nbsp td td nbsp td td nbsp
  • 使用express记录所有GraphQL响应

    我成功地设置了记录 graphQL 错误 app use graphql graphqlHTTP request gt return schema rootValue request formatError error gt const p
  • 如何确保循环完成后执行语句?

    下面是我的代码的快照 routes index js exports index function req res var results new Array for var i 0 i lt 1000 i do database quer
  • 在 vuejs 上将 \n 替换为新行

    我正在尝试将 n 字符替换为来自端点的数据的新行 I tried p item licensedocument legal documentText replace r n r n g br p 并没有奏效 当我将replace 写入问题末
  • 如何在 Angular 中实现全局加载器

    我有一个全局加载器 其实现如下 核心模块 router events pipe filter x gt x instanceof NavigationStart subscribe gt loaderService show router
  • 为什么此 Firebase 可调用函数不返回值?

    我有一个应返回值的可调用函数 但唯一返回的是 null 以下是该功能的当前版本 我也尝试过回报第一个承诺 原来的once调用 最后在另一个then返回 GUID 在这种情况下它实际上返回了数据 但它立即返回并且 GUID 为空 我怎样才能实
  • Xml、xsl Javascript 排序

    我正在寻找一种使用 javascript 对 xml 数据进行排序的方法 并希望最终过滤掉数据 我知道这一切都可以在 xsl 文件中实现 但我想在客户端进行 我已经搜索了多个使用 javascript 进行排序的地方 但其中大部分要么太特定
  • innerText 和 html 之间的区别

    有什么区别innerText text and html innerText or text http docs jquery com Attributes text如果您使用的是 jQuery 不包含任何 HTML 标签 因此 如果您有一
  • 从 mvc web api httpresponse 生成 csv 并通过 angularjs 接收以供下载

    我正在尝试从我的 Web api 生成一个 CSV 文件并通过 angularjs 接收该文件 我有一个如下所示的 API 控制器 HttpPost public HttpResponseMessage GenerateCSV FieldP
  • xhr 响应 for 循环不起作用

    我有 xhr 和 for 循环 它的工作非常罕见 for var i 0 i lt this files length i var xhr new XMLHttpRequest xhr upload onprogress function
  • 谷歌colab录音,如何实现更精确的方式告诉用户开始对着麦克风说话

    我正在尝试创建一个为机器学习项目录制音频的程序 我想使用 google colab 这样人们就不必在他们的系统上安装或运行任何东西 我在网上找到了这个录制和播放音频的示例 单元格 1 包含用于录制音频的 js 代码和用于将其转换为字节对象的
  • ajax调用后如何停止刷新页面?

    ajax 调用后我无法停止刷新页面 我尝试过放置 e preventDefault 并返回 false 但我的页面又刷新了 我不知道代码有什么问题或者什么 请帮助我在ajax调用后停止刷新页面 解决这个问题对我来说会有很大的帮助 提前致谢
  • 无法使用 Excel JavaScript API 设置 NumberFormat

    我正在使用 Excel Javascript API 在搜索文档后 仍然找不到我想要实现的解决方案 因此 我想将所有内容设置为数字格式 文本 这样 Excel 的自动格式设置就不会与任何单元格的内容混淆 不会删除前导零或更改日期格式 文档建
  • Web 文本编辑器中的 RTF 格式

    网络上是否有支持 RTF 格式文档输入的文本编辑器 我知道这对 webdev 来说有点奇怪 但我需要从数据库中读取 RTF 文档 并在基于 Web 的文本编辑器中对其进行编辑 然后将其存储回 RTF 中 在我在转换工具上投入太多资金之前 我
  • 将 async 和await 与export const 一起使用

    我无法完成这项工作 它说 await 是一个保留字 是的 当然是 而且我想使用它 怎么了 export const loginWithToken async gt return dispatch gt dispatch type SESSI
  • 如何阻止用户重复单击 jQuery AJAX 调用?

    我有一个包含以下脚本的网页 JavaScript function LinkClicked var stage this id var stop ContentPlaceHolderMenu txtDate val var nDays Co
  • 构造函数可以返回什么值来避免返回 this ?

    确切的情况是什么 returnJavascript 中的语句可以返回除this当使用构造函数调用时new关键词 Example function Foo return something var foo new Foo 如果我没记错的话 如
  • 阻止 Chrome 扩展程序的 popup.html 自动打开

    我正在创建一个 Chrome 扩展程序 其中包含background html每分钟从 API 请求一次信息的文件 收到信息后 它会发送消息popup html弹出窗口使用 JSON 信息将新的 HTML 元素附加到弹出窗口的主体上 问题是

随机推荐

  • Async.Catch 不适用于 OperationCanceledException

    我使用 Async Catch 来处理异步工作流程引发的异常 work gt Async Catch gt Async RunSynchronously gt fun x gt match x with Choice1Of2 gt succ
  • Python Pandas:将嵌套字典转换为数据帧

    我有一个这样的迪克 1 tp 26 fp 112 2 tp 26 fp 91 3 tp 23 fp 74 我想转换成这样的数据框 t tp fp 1 26 112 2 26 91 3 23 74 有人知道怎么做吗 Try DataFrame
  • InputText 组件中的默认文本(占位符)

    我想在 JSF Primefaces 中显示默认的信息文本输入文本成分 当用户单击文本字段时 该文本应该消失 当他点击外部而不输入任何内容时出现 如果用户提交的表单没有任何值 则不应将此默认值设置为 Bean 的属性 我知道在 Manage
  • quarkus 整个包的本机反射配置

    我正在构建 quarkus 本机并使用 Stripe sdk 作为外部库 为了支持 Stripe sdk 我需要创建反射配置 json文件并在 application properties 中设置quarkus native additio
  • 如何强制gdb在程序执行开始后立即停止?

    我尝试在每个有意义的函数上设置断点 但程序在到达其中任何一个之前退出 有没有办法让程序从一开始就以逐步模式运行 以便我可以看到发生了什么 我正在尝试调试 usr bin id 如果它很重要 我们有它的自定义插件 但它的行为不正确 附 启动命
  • 为什么可以内联初始化静态常量变量而不是普通静态变量(C++)

    如果我这样做 class Gone public static const int a 3 它有效 但如果这样做 class Gone public static int a 3 它给出了一个编译错误 现在我知道为什么第二个不起作用 我只是
  • 如何将DLU转换为像素?

    Microsoft 在其 UI 指南中使用对话长度单位 DLU 如何将它们转换为像素 据我所知 DLU取决于系统字体大小 您能建议一些在 Delphi for Win32 中进行此类转换的简单方法吗 首先我们从what对话单元是 为此我将引
  • 如何在prometheus yml配置文件中配置特定IP?

    我想使用特定的 IP 地址运行 Prometheus 默认情况下 它在本地主机上运行 我在中没有看到任何这样的选项普罗米修斯配置 您可以使用命令行选项来配置监听地址 prometheus web listen address 0 0 0 0
  • 在 UIView 中创建内部阴影[重复]

    这个问题在这里已经有答案了 我想在我的身上创造一个内在的阴影UIView在 iPad 上这样 This UIView可以改变大小 所以我不能使用简单的图像来创建这种阴影 我已经测试过setShadow等等 但它只是创建了一个投影 知道如何创
  • 从 SharedPreferences 设置和获取 StringSet?

    我正在构建一个 Android 应用程序 我想在首选项中存储一组字符串 以便根据登录信息跟踪谁使用了该应用程序 我不想使用数据库 所以我知道我应该使用 SharedPreferences 来存储登录人员的列表 我希望能够重置此列表 以便将个
  • 使用中位数和分组依据以及谷歌表格进行查询

    我需要获得分组中位数 我已经对表单的数据进行了分组 From type Weight A person person 4 A person person 3 A person organization 11 A person person
  • 在 QToolTip 中使用图片或图像

    有没有办法在 QToolTip 中显示图片 图像 我想显示键盘按钮的小图像 以向用户解释他可以在该特定小部件上使用哪些按钮 快捷方式 您可以使用以下 html 代码轻松显示图像 QToolTip showText QCursor pos i
  • AngularJS 和谷歌云端点:需要演练

    我是 AngularJS 的新手 但我真的很喜欢 AngularJS 的工作方式 因此我想将其部署为我的 Google 云端点后端的客户端 然后我立即遇到两个问题 1 放在哪里我的回调 那么它能够在 ANGularJs 控制器中工作吗 2
  • 在字符串中包含常量而不连接

    PHP 中有没有一种方法可以在字符串中包含常量而无需连接 define MY CONSTANT 42 echo This is my constant MY CONSTANT No 对于字符串 PHP 无法区分字符串数据和常量标识符 这适用
  • 使用元素求幂加速嵌套 for 循环

    我正在编写一个大型代码 我发现自己需要加速其中的特定部分 我创建了一个MWE如下图所示 import numpy as np import time def random data N Generate some random data r
  • 如何以编程方式打开 Safari 扩展 ToolbarItem 弹出窗口

    我想以编程方式触发 Safari 扩展工具栏项目上的 单击 事件 以便在网页上发生某些情况后出现我的自定义弹出窗口 我正在使用新的 Xcode 扩展 IDE 并使用界面生成器构建了我的弹出窗口 目前 StackOverflow 上的所有答案
  • 使用 .bat 文件运行 php 脚本

    我需要每天晚上在我的服务器上运行一个 php 脚本 在 Linux 系统上我设置了一个 cron 作业 但我被困在 Windows 系统上 我知道我必须使用 Windows 任务计划程序设置一个任务 并且该任务需要运行一个 bat 文件 该
  • 向 DataTable 添加多行

    我知道有两种方法将带有数据的新行添加到DataTable string arr2 one two three dtDeptDtl Columns Add Dept Cd for int a 0 a lt arr2 Length a Data
  • 关于 C 中的 ## 预处理器

    Given define cat x y x y 电话cat a 1 回报a1 but cat cat 1 2 3 未定义 但是如果我也定义 define xcat x y cat x y 那么结果是xcat xcat 1 2 3 就是现在
  • RequireJS:根据环境加载不同的文件

    是否有根据当前项目环境 例如开发或生产 加载不同文件的功能 我的意思是 它可以帮助我透明地加载缩小或完整的文件 我读到有关多版本加载的内容 但多版本意味着我需要指定文件的版本 例如 我的模块中有 module js 文件 在这个文件中我需要