我正在尝试使用基于webpack的管道完全替换rails资产管道。我已经使用webpack-dev-server
和热重装等开发工具设置得非常漂亮。现在我想要实现的是生产的编译步骤,它将模仿rails如何编译资产(消化/生成兼容的manifest.json文件),这样我仍然可以使用javascript_include_tag
等帮助程序。这是我被卡住了。
我已经阅读了许多有关使用带有rails的webpack的教程,但他们最终都编写了自己的视图助手来加载资源。我试图避免这种情况,因为我不想要额外的开销或者开发人员需要了解不同的管道。我还希望像asset_host=
这样的配置能够开箱即用,以便使用CDN等。
最终,我想要的是与gulp-rev-rails-manifest类似的东西,它在编译时生成与rails-asset-pipeline兼容的清单文件,但我还没有找到Webpack存在的插件。所以......
webpack.config
或
或者
非常感谢任何帮助:)
答案 0 :(得分:2)
在gulp任务中运行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);
});
};