Include olm in the webpack if it's been installed

.. to make it easy to build a crypto-enabled vector
This commit is contained in:
Richard van der Hoff 2015-12-02 14:54:26 +00:00
parent 819b80d30f
commit 782174069c
1 changed files with 25 additions and 2 deletions

View File

@ -1,6 +1,8 @@
var path = require('path');
var webpack = require('webpack');
var olm_path = path.resolve('./node_modules/olm');
module.exports = {
module: {
preLoaders: [
@ -29,15 +31,36 @@ module.exports = {
// alias any requires to the react module to the one in our path, otherwise
// we tend to get the react source included twice when using npm link.
react: path.resolve('./node_modules/react'),
// 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: [
new webpack.IgnorePlugin(/^olm/),
new webpack.DefinePlugin({
'process.env': {
NODE_ENV: JSON.stringify(process.env.NODE_ENV)
}
})
}),
// olm.js includes "require 'fs'", which is never
// executed in the browser. Ignore it.
new webpack.IgnorePlugin(/^fs$/, /node_modules\/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 bundle");
} catch (e) {
module.exports.plugins.push(
new webpack.IgnorePlugin(/^olm$/)
);
}
}) ();