Skip to content

Commit

Permalink
Add example webpack config
Browse files Browse the repository at this point in the history
  • Loading branch information
awlayton committed Apr 16, 2022
1 parent 4a35040 commit d7541f9
Show file tree
Hide file tree
Showing 3 changed files with 79 additions and 6 deletions.
6 changes: 1 addition & 5 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,16 +1,12 @@
{
"name": "@oada/id-client",
"version": "2.0.6",
"version": "2.0.7",
"description": "OADA identity client library for Node.JS and Browser",
"main": "index.js",
"browser": {
"./dist/node.js": false,
"buffer": "buffer/",
"crypto": "crypto-browserify",
"events": "events/",
"stream": "stream-browserify",
"string_decoder": "string_decoder/",
"url": "url/",
"util": "util/"
},
"engines": {
Expand Down
1 change: 0 additions & 1 deletion src/node.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@

/* eslint-disable @typescript-eslint/naming-convention */

import { URL } from 'url';
import fs from 'fs';
import http from 'http';
import { once } from 'events';
Expand Down
78 changes: 78 additions & 0 deletions webpack.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
/**
* @license
* Copyright 2022 Open Ag Data Alliance
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

/* eslint-disable unicorn/prefer-module, import/no-commonjs */

const path = require('path');
const webpack = require('webpack');

module.exports = {
entry: './src/browser.ts',
target: 'web',
mode: 'production',
plugins: [
new webpack.NormalModuleReplacementPlugin(/node:/, (resource) => {
resource.request = resource.request.replace(/^node:/, '');
}),
new webpack.ProvidePlugin({
process: 'process/browser',
Buffer: ['buffer', 'Buffer'],
}),
],
module: {
rules: [
{
test: /\.test\.ts$/,
use: [
// Let tests use fs.readFileSync
{
loader: 'transform-loader',
options: 'brfs',
},
],
},
{
test: /\.ts$/,
loader: 'ts-loader',
options: {
projectReferences: true,
onlyCompileBundledFiles: true,
},
},
],
},
resolve: {
extensions: ['.ts', '.js', '.json', '.wasm'],
fallback: {
crypto: require.resolve('crypto-browserify'),
events: require.resolve('events/'),
stream: require.resolve('stream-browserify'),
// eslint-disable-next-line camelcase
string_decoder: require.resolve('string_decoder/'),
util: require.resolve('util/'),
},
},
context: __dirname,
node: {
__dirname: true,
},
output: {
path: path.resolve(__dirname),
filename: 'bundle.js',
library: 'oadaIdClient',
},
};

0 comments on commit d7541f9

Please sign in to comment.