generator-portals-clientside
Version:
Generates a SharePoint clientside project skeleton. Brought to you by Skyline's Portals & Collaboration Team.
43 lines (41 loc) • 1.4 kB
JavaScript
var fs = require("fs");
var path = require("path");
var config = require("./package.json").portals;
module.exports = {
resolve: {
// make it so you can require things '/src' relative import "scripts/utils/cache" vs import "../../../utils/cache"
modules: [ path.resolve("./node_modules"), path.resolve("./src")]
},
entry: getEntries(),
output: {
path: path.resolve(__dirname + `/dist/${config.folder}/${config.subfolder}`) ,
filename: config.namespace +".[name].js"
},
module: {
rules: [
{
test: /\.css$/,
use: [
{ loader: "style-loader" },
{ loader: "css-loader"}
]
},
{
test: /\.js?$/,
exclude: /(node_modules)/,
use: [{ loader: 'babel-loader' }]
}
]
},
devtool: "source-map"
};
// read the entries folder and create an object of js files
function getEntries() {
var filenames = fs.readdirSync("./src/entries");
var entryObj = filenames.filter(f => path.extname(f) === ".js").reduce((entry, filename) => {
var sections = filename.split(".");
entry[sections[sections.length - 2]] = "./src/entries/" + filename;
return entry;
}, {});
return entryObj;
}