2015-05-29 35 views
0

我试图用基于webpack的管道完全替换导轨资产管道。我已经得到了与webpack-dev-server和热重新加载等开发设置所有工作都很好。现在我试图实现的是一个生产的编译步骤,它会模仿rails如何编译资产(消化/生成兼容的manifest.json文件),以便我仍然可以使用帮助器,如javascript_include_tag等。这就是我卡住的地方。导轨资产兼容清单的Webpack插件

我读过很多有关使用webpack with rails的教程,但他们最终都编写了自己的视图助手来加载资源。我试图避免这一点,因为我不想额外的开销或开发人员需要了解不同的管道。我也希望像asset_host=这样的配置工作,以便使用CDN等开箱即用。

最终,我想要的东西类似于gulp-rev-rails-manifest,它在编译时生成rails-asset-pipeline兼容的清单文件,但我没有' t发现了一个Webpack插件(还)。所以......

  1. 是有可能贯穿使用的WebPack仅(即不使用一口-的WebPack),所以我可以用上面的插件一饮而尽喝了一口流一个的WebPack建设。我不想用一口-的WebPack的原因是,它接管您的输入/输出等,我发现整个设置混乱,因为这一切已经在webpack.config

或者

存在
  • 有没有人有任何体面的资源来编写Webpack的插件。这对我来说似乎有点黑,而官方网站有一个“如何编写插件”的菜单部分,但它实际上并不是任何链接。
  • 或者

  • 是否有实际上是一个插件,会做正是这一点,我不知道如何在正确interwebs搜索。
  • 任何帮助是极大的赞赏:)

    +0

    我已经发布webpacked宝石的WebPack集成到Rails应用程序+零配置热模块更换。查阅文档以获取更多信息:https://github.com/Darkside73/webpacked – Darkside

    回答

    2

    在一饮而尽任务运行的WebPack是very simple

    var webpack = require('webpack'); 
    var webpackConfig = require('./webpack.config'); 
    
    gulp.task('webpack', function(done) { 
        webpack(webpackConfig, function(err, stats) { 
        done(err); 
        }); 
    }); 
    

    注意,提供给的WebPack回调stats对象包含关于发射的所有资产信息webpack,所以你可以使用它来生成你自己的清单。

    这里有几个的WebPack插件可能对您有用:

    虽然对如何创建插件没有正式的教程,有仍然是一个Plugin API文档,它描述了插件可以挂接到的不同接口。 webpack source和github包含很多webpack插件示例。

    这里是一个非常简单的插件,用来记录资产:

    module.exports = function() { 
        this.plugin('done', function(stats) { 
        console.log(stats.toJson().assets); 
        }); 
    }; 
    
    +1

    如上所述,这正是我不想要的。我不想跑步。我想通过webpack build命令完成所有工作。 – brad

    +0

    @brad查看我答案的下半部分。另外,你的帖子中特别提到不使用'gulp-webpack',因此我的第一个建议。 –