如何在构建时自动更改脚本标记URL

Ta946

我正在使用以下代码在Node中运行Backbone index.html

<script src="js/api/require.js"></script>
<script>require(['js/require-cfg'],function(){require(['main'])});</script>

main.js 看起来像这样:

require(['app'], 
  function(App){
    App.initialize();
  }
);

在生产中,我使用r.js将文件编译main-build.js并将index.html文件中的链接重定向mainmain-build

<script>require(['js/require-cfg'],function(){require(['main-build'])});</script>

当前,如果要将代码部署到生产环境,则必须手动将from更改mainmain-buildin index.html,或者将链接保留为,main-build但将其内容更改main-build.js为与main.js运行本地或测试环境时相同的内容,然后在部署时切换回到生产。

有没有更好的(自动)方式让代码main-build.js在生产中使用代码,而main.js在本地或测试环境中使用代码的内容呢?

例如:使用节点环境变量来更改链接index.html(不确定如何更改html!)或更改其内容,main-build.js但是每次运行r.js进行生产时,该内容都会被覆盖

埃米尔·伯杰隆(Emile Bergeron)

我个人使用Gulpindex.html使用gulp-html-replace处理文件

在开发中,您放置了所需的标签。

<script src="js/api/require.js"></script>
<!-- build:js -->
<script>require(['js/require-cfg'],function(){require(['main'])});</script>
<!-- endbuild -->

要进行生产构建,请创建一个使用gulp-html-replace插件的gulp任务

var gulp = require('gulp'),
    htmlreplace = require('gulp-html-replace');

gulp.task('build', function() {

    return gulp.src("index.html")
        .pipe(htmlreplace({
            js: {
                src: [['main-build']],
                tpl: '<script>require(["js/require-cfg"],function(){require(["%s"])});</script>'
            },
        }))
        .pipe(gulp.dest("build/index.html"));
});

如果您采用Gulp路线,则可以完成所有构建过程。例如,这是一个简单的r.js任务:

var rjs = require('requirejs');

gulp.task('optimize', function(done) {
    rjs.optimize({
        name: "main",
        out: "build/js/main.min.js",
        /* ...other options */
    }, function(buildResponse) {
        done();
    }, done);
}); 

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在启动时自动构建AHK脚本?

如何在映像构建时/之后自动运行docker容器?

指定命名空间时,如何在每次构建时自动构建 T4 模板?

如何在启动时自动运行PowerShell脚本?

如何在启动时自动运行Shell脚本?

如何在自动链接标记脚本中对土耳其字母进行正则表达式

如何在24小时后自动更改标志

当标记设置为像素时,如何在图例中更改标记大小/比例

使用蛋糕构建脚本时如何在TeamCity中显示构建错误消息

如何在更改下拉列表时更改 href url?

在Gitlab CI中,自动标记在构建时提交

当将更改推送到GitLab时,如何使BlueOcean Multibranch Pipeline自动启动构建?

如何在通过 swift 代码打开 .app 时自动加载信息以标记

使用Liquibase时如何处理由自动更新脚本进行的数据库更改?

如何在VS Code中运行Python脚本之前自动保存更改

加载脚本时如何在jquery中选中复选框时如何更改背景

如何在转发到视图时更改url?

如果失败,如何在更改 url 时让 Chrome 抛出异常

如何在 ReactJS 中单击时更改我的 URL

使用CMake时如何在Gradle构建脚本中设置NDK路径?

如何在角度 2 中单击时更改锚标记文本

交易SQL如何在毕业证更改(升迁)时标记person_id

AndroidManifest.xml-构建项目时,行会自动更改

.csproj 文件在构建时自动更改 解决方案?

如何在XBMC上安装Python脚本以在启动时自动启动它

如何在使用我的 mac 登录时自动正确运行 shell 脚本?

连接断开时如何在PowerShell中对R脚本自动重试

如何在脚本暂停时使自动热键默认图标托盘消失

如何在Debian Jessie(Raspberry Pi)中自动运行脚本(插入USB内存时)?