ih-portal
Version:
A project for connecting interaction hub services with catalyst-ui components
102 lines (96 loc) • 4.65 kB
JavaScript
const webpack = require('webpack');
const ExtractTextPlugin = require('extract-text-webpack-plugin');
const config = require('./config.js');
const env = config.get('env');
var version = JSON.stringify(require("./package.json").version).replace(/"/g, '');
console.log(version);
console.log(config.get('env'));
const fileNoVersionTemplate = 'catalyst-[name]';
const fileVersionTemplate = 'catalyst-[name]-' + version;
const jsFileTemplate = (process.env.NODE_ENV === 'production' ? fileVersionTemplate : fileNoVersionTemplate) + '.js';
const cssFileTemplate = (process.env.NODE_ENV === 'production' ? fileVersionTemplate : fileNoVersionTemplate) + '.css';
module.exports = {
entry: {
demo: './demo/index.jsx',
portal: './src/portal.js',
},
output: {
libraryTarget: 'var',
library: '[name]',
path: process.env.NODE_ENV === 'production' ? './dist' : './build',
publicPath: '/',
filename: jsFileTemplate,
},
resolve: {
extensions: ['', '.js', '.json', '.jsx', '.less'],
},
module: {
loaders: [
{
test: /\.(css|less)$/,
loader: ExtractTextPlugin.extract('style-loader', 'css-loader!less-loader'),
},
{
test: /\.jsx?$/,
loader: 'babel',
exclude: /node_modules.(?!ih)/,
loader: 'babel?cacheDirectory,presets[]=react,presets[]=es2015',
},
{
test: /\.html$/,
loader: 'html',
},
{
test: /\.(pn|jpe?)g$/,
loader: 'url?limit=8192',
},
],
},
plugins: [
new ExtractTextPlugin(cssFileTemplate),
new webpack.DefinePlugin({
'__DEV__': env === 'development',
'__TEST__': env === 'test',
'__PRODUCTION__': env === 'production',
'__USERNAME__': JSON.stringify(config.get('username')),
'__PASSWORD__': JSON.stringify(config.get('password')),
'__ACADEMIC_PROFILE_URL__': JSON.stringify(config.get('getAcademicProfileUrl')),
'__ACCEPTDENY_URL__': JSON.stringify(config.get('getAcceptDeclineAwardUrl')),
'__ACCOUNTINQUIRY_URL__': JSON.stringify(config.get('getAccountInquiryUrl')),
'__APPLICATIONS_URL__': JSON.stringify(config.get('getApplicationsUrl')),
'__CHANGE_READ_STATUS_URL__': JSON.stringify(config.get('changeReadStatusUrl')),
'__CHECKLIST_URL__': JSON.stringify(config.get('getChecklistUrl')),
'__CLASS_SCHEDULE_URL__': JSON.stringify(config.get('getClassScheduleUrl')),
'__COURSES_URL__': JSON.stringify(config.get('getCoursesUrl')),
'__DEGREE_AUDIT_PAGELET_NAME__': JSON.stringify(config.get('getDegreeAuditPageletName')),
'__DUE_NOW_DAYS__':JSON.stringify(config.get('getDueNowDays')),
'__EVENTS_URL__': JSON.stringify(config.get('getEventsUrl')),
'__FEATURE_HEADER_PHOTO__': JSON.stringify(config.get('getFeatureHeaderPhoto')),
'__FEATURE_TABS__': JSON.stringify(config.get('getFeatureTabs')),
'__FINANCIAL_AID_URL__': JSON.stringify(config.get('getFinancialAidUrl')),
'__HOME_URL__': JSON.stringify(config.get('getHomeUrl')),
'__LAUNCHER_PAGELET_NAME__': JSON.stringify(config.get('getLauncherPageletName')),
'__LOGOUT_URL__': JSON.stringify(config.get('getLogoutUrl')),
'__LOV_URL__': JSON.stringify(config.get('getLovUrl')),
'__MAKEPAYMENT_URL__' : JSON.stringify(config.get('getMakePaymentUrl')),
'__NOTIFICATIONS_URL__': JSON.stringify(config.get('getNotificationsUrl')),
'__PAGELET_BUILDER_URL__': JSON.stringify(config.get('getPageletBuilderUrl')),
'__PAGELET_URL__': JSON.stringify(config.get('getPageletUrl')),
'__PICTURE_URL__': JSON.stringify(config.get('getPictureUrl')),
'__PENDING_FINANCIAL_AID_URL__': JSON.stringify(config.get('getPendingFinancialAidUrl')),
'__PROFILE_LINKS_PAGELET_NAME__': JSON.stringify(config.get('getProfileLinksPageletName')),
'__PROFILE_URL__': JSON.stringify(config.get('getProfileUrl')),
'__SCHEDULE_URL__': JSON.stringify(config.get('getScheduleUrl')),
'__VIEW_SCHEDULE_URL__': JSON.stringify(config.get('getViewScheduleUrl')),
'__SERVICE_INDICATORS_URL__': JSON.stringify(config.get('getServiceIndicatorsUrl')),
'__STUDENT_ACCOUNT_URL__': JSON.stringify(config.get('getStudentAccountUrl')),
'__SUBJECTS_URL__': JSON.stringify(config.get('getSubjectsUrl')),
'__TERMBILL_URL__': JSON.stringify(config.get('getTermBillUrl')),
'__UCID_LOOKUP_URL__': JSON.stringify(config.get('ucidLookupUrl')),
'__ACTIVITY_GUIDE_URL__': JSON.stringify(config.get('getActivityGuideUrl')),
}),
new webpack.optimize.DedupePlugin(),
],
// Adds source maps to output file
// devtools: 'eval',
};