@lonelyplanet/dotcom-core
Version:
This package is meant to house some of our more common UI and shared libs across dotcom applications.
59 lines (50 loc) • 1.44 kB
text/typescript
import { styleLoaders as taStyles, tsLoader } from "@lonelyplanet/travel-agent/dist/webpack/loaders";
import * as ExtractTextPlugin from "extract-text-webpack-plugin";
import * as path from "path";
import * as w from "webpack";
import * as pkg from "./package.json";
const mode = "development";
const styleLoaders = { ...taStyles };
styleLoaders.css.options.localIdentName = "lp-global-[local]";
styleLoaders.css.options.context = path.resolve(__dirname, "src");
export const extractCssLoader = {
test: /\.css$/,
include: /src/,
loader: ExtractTextPlugin.extract({
fallback: "style-loader",
use: [styleLoaders.css, styleLoaders.postcss],
}),
};
const tsLoaderCopy = { ...tsLoader };
tsLoaderCopy.use[0].options = { configFile: path.resolve("./tsconfig-es.json") };
const rules = [
tsLoaderCopy,
extractCssLoader,
];
const config: w.Configuration = {
mode,
entry: {
core: "./src/client.tsx",
},
output: {
path: path.resolve(__dirname, "lib"),
chunkFilename: "[name]-chunk.js",
publicPath: `http://localhost:8080/assets/${pkg.version}/`,
libraryTarget: "umd",
jsonpFunction: "webpackJsonpDotcomCore"
},
module: {
rules,
},
resolve: {
extensions: [".js", ".jsx", ".ts", ".tsx"],
},
plugins: [
new ExtractTextPlugin("[name].css", {
disable: false,
allChunks: true,
}),
new w.HotModuleReplacementPlugin(),
],
};
export default config;