ohif-viewer/extensions/vtk/webpack.config.js

132 lines
3.0 KiB
JavaScript
Raw Normal View History

var path = require('path');
var webpack = require('webpack');
const autoprefixer = require('autoprefixer');
const cssRules = [
{
test: /\.css$/,
exclude: /\.module\.css$/,
use: [
'style-loader',
'css-loader',
{
loader: 'postcss-loader',
options: {
2019-07-06 04:58:25 +02:00
plugins: () => [autoprefixer('last 2 version', 'ie >= 10')],
},
},
],
},
{
test: /\.glsl$/i,
include: /vtk\.js[\/\\]Sources/,
2019-07-06 04:58:25 +02:00
loader: 'shader-loader',
},
{
test: /\.worker\.js$/,
include: /vtk\.js[\/\\]Sources/,
use: [
{
loader: 'worker-loader',
2019-07-06 04:58:25 +02:00
options: { inline: true, fallback: false },
},
],
},
{
test: /\.css$/,
include: /\.module\.css$/,
use: [
{ loader: 'style-loader' },
{
loader: 'css-loader',
options: {
localIdentName: '[name]-[local]_[sha512:hash:base64:5]',
2019-07-06 04:58:25 +02:00
modules: true,
},
},
{
loader: 'postcss-loader',
options: {
2019-07-06 04:58:25 +02:00
plugins: () => [autoprefixer('last 2 version', 'ie >= 10')],
},
},
],
},
];
var entry = path.join(__dirname, './src/index.js');
const sourcePath = path.join(__dirname, './src');
const outputPath = path.join(__dirname, './dist');
module.exports = {
entry,
output: {
path: outputPath,
filename: 'index.umd.js',
library: '@ohif/extension-vtk',
libraryTarget: 'umd',
2019-07-06 04:58:25 +02:00
globalObject: 'this',
},
module: {
rules: [
{
test: /\.(js|jsx)$/,
exclude: /node_modules/,
2019-07-06 04:58:25 +02:00
loader: 'babel-loader',
options: {
// Find babel.config.js in monorepo root
// https://babeljs.io/docs/en/options#rootmode
rootMode: 'upward',
presets: [
[
'@babel/preset-env',
{
// Do not transform ES6 modules to another format.
// Webpack will take care of that.
modules: false,
},
],
],
},
},
].concat(cssRules),
},
resolve: {
2019-07-06 04:58:25 +02:00
modules: [
// Modules specific to this package
path.resolve(__dirname, 'node_modules'),
// Hoisted Yarn Workspace Modules
path.resolve(__dirname, '../../node_modules'),
sourcePath,
],
},
externals: [
{
'cornerstone-core': {
commonjs: 'cornerstone-core',
commonjs2: 'cornerstone-core',
amd: 'cornerstone-core',
2019-07-06 04:58:25 +02:00
root: 'cornerstone',
},
'cornerstone-math': {
commonjs: 'cornerstone-math',
commonjs2: 'cornerstone-math',
amd: 'cornerstone-math',
2019-07-06 04:58:25 +02:00
root: 'cornerstoneMath',
},
},
'@ohif/i18n',
'ohif-core',
'dcmjs',
'react-viewerbase',
'react', //: 'React',
'react-dom', //: 'ReactDOM',
'react-redux', //: 'ReactRedux',
'react-resize-detector', //: 'ReactResizeDetector',
'react-viewerbase', //: 'reactViewerbase',
2019-07-06 04:58:25 +02:00
'prop-types', //: 'PropTypes'
/*/\b(vtk.js)/*/
2019-07-06 04:58:25 +02:00
],
};