Skip to content

Commit

Permalink
webpack: Use require to look for olm
Browse files Browse the repository at this point in the history
Since matrix-org/matrix-js-sdk#141, the jenkins build
does pull in the olm module, but because it's using npm v2, buries it deep in
node_modules. Rather than using the `fs` module to hunt for it, just try to
`require` it in the webpack config.
  • Loading branch information
richvdh committed Jun 20, 2016
1 parent 654429d commit 664f809
Showing 1 changed file with 10 additions and 20 deletions.
30 changes: 10 additions & 20 deletions webpack.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,6 @@ var path = require('path');
var webpack = require('webpack');
var ExtractTextPlugin = require("extract-text-webpack-plugin");

var olm_path = path.resolve('./node_modules/olm');

module.exports = {
module: {
preLoaders: [
Expand Down Expand Up @@ -45,11 +43,6 @@ module.exports = {

// same goes for js-sdk
"matrix-js-sdk": path.resolve('./node_modules/matrix-js-sdk'),

// matrix-js-sdk will use olm if it is available,
// but does not explicitly depend on it. Pull it
// in from node_modules if it's there.
olm: olm_path,
},
},
plugins: [
Expand All @@ -65,20 +58,17 @@ module.exports = {

// olm.js includes "require 'fs'", which is never
// executed in the browser. Ignore it.
new webpack.IgnorePlugin(/^fs$/, /node_modules\/olm$/)
new webpack.IgnorePlugin(/^fs$/, /\/olm$/)
],
devtool: 'source-map'
};

// ignore olm.js if it's not installed.
(function() {
var fs = require('fs');
try {
fs.lstatSync(olm_path);
console.log("Olm is installed; including it in webpack bundle");
} catch (e) {
module.exports.plugins.push(
new webpack.IgnorePlugin(/^olm$/)
);
}
}) ();
// ignore olm.js if it's not installed, to avoid a scary-looking error.
try {
require('olm');
console.log("Olm is installed; including it in webpack bundle");
} catch (e) {
module.exports.plugins.push(
new webpack.IgnorePlugin(/^olm$/)
);
}

0 comments on commit 664f809

Please sign in to comment.