react-cosmos
Version:
CLI for running React Cosmos inside webpack-powered apps
37 lines (31 loc) • 1.13 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.getGlobalsPlugin = getGlobalsPlugin;
exports.hasPlugin = hasPlugin;
exports.isInstanceOfWebpackPlugin = isInstanceOfWebpackPlugin;
var _getWebpackNodeEnv = require("./getWebpackNodeEnv");
function getGlobalsPlugin(_ref, userWebpack, devServerOn) {
var publicUrl = _ref.publicUrl;
var cleanPublicUrl = removeTrailingSlash(publicUrl);
return new userWebpack.DefinePlugin({
// "if (__DEV__)" blocks get stripped when compiling a static export build
__DEV__: JSON.stringify(devServerOn),
'process.env': {
NODE_ENV: JSON.stringify((0, _getWebpackNodeEnv.getWebpackNodeEnv)()),
PUBLIC_URL: JSON.stringify(cleanPublicUrl)
}
});
}
function hasPlugin(plugins, pluginName) {
return plugins && plugins.filter(function (p) {
return isInstanceOfWebpackPlugin(p, pluginName);
}).length > 0;
}
function isInstanceOfWebpackPlugin(plugin, constructorName) {
return plugin.constructor && plugin.constructor.name === constructorName;
}
function removeTrailingSlash(url) {
return url.replace(/\/$/, '');
}