From f175d4b96bae1db652ff46d77bdc9dde49e84f19 Mon Sep 17 00:00:00 2001 From: dannyrb Date: Fri, 5 Jul 2019 22:58:25 -0400 Subject: [PATCH] Commit changes before a long weekend --- packages/_components/.eslintrc => .eslintrc | 6 ++ package.json | 1 + packages/_components/.gitattributes | 1 - packages/_components/.gitignore | 32 --------- packages/_core/.eslintrc | 7 -- packages/_core/.vscode/extensions.json | 3 - packages/_core/.vscode/settings.json | 29 -------- packages/_core/config/webpack.common.js | 51 +++++++++++++ packages/_core/config/webpack.prod.js | 38 ++++++++++ packages/_core/package.json | 7 +- packages/_i18n/.editorconfig | 9 --- packages/_i18n/config/webpack.common.js | 67 +++++++++++++++++ packages/_i18n/config/webpack.prod.js | 64 +++++++++++++++++ packages/_i18n/package.json | 1 + packages/_viewer/.eslintrc | 18 ----- packages/extension-cornerstone/package.json | 2 +- .../config/webpack.common.js | 67 +++++++++++++++++ .../config/webpack.prod.js | 64 +++++++++++++++++ packages/extension-dicom-html/package.json | 1 + packages/extension-dicom-microscopy/.eslintrc | 16 ----- .../config/webpack.common.js | 67 +++++++++++++++++ .../config/webpack.prod.js | 64 +++++++++++++++++ .../extension-dicom-microscopy/package.json | 1 + packages/extension-dicom-pdf/.eslintrc | 16 ----- packages/extension-dicom-pdf/.prettierrc | 9 --- .../config/webpack.common.js | 67 +++++++++++++++++ .../config/webpack.prod.js | 64 +++++++++++++++++ packages/extension-dicom-pdf/package.json | 1 + packages/extension-vtk/.editorconfig | 9 --- packages/extension-vtk/.eslintrc | 16 ----- packages/extension-vtk/.gitignore | 26 ------- packages/extension-vtk/.travis.yml | 4 -- packages/extension-vtk/package.json | 10 +-- packages/extension-vtk/webpack.config.js | 71 ++++++++++++------- 34 files changed, 679 insertions(+), 230 deletions(-) rename packages/_components/.eslintrc => .eslintrc (72%) delete mode 100644 packages/_components/.gitattributes delete mode 100644 packages/_components/.gitignore delete mode 100644 packages/_core/.eslintrc delete mode 100644 packages/_core/.vscode/extensions.json delete mode 100644 packages/_core/.vscode/settings.json create mode 100644 packages/_core/config/webpack.common.js create mode 100644 packages/_core/config/webpack.prod.js delete mode 100644 packages/_i18n/.editorconfig create mode 100644 packages/_i18n/config/webpack.common.js create mode 100644 packages/_i18n/config/webpack.prod.js delete mode 100644 packages/_viewer/.eslintrc create mode 100644 packages/extension-dicom-html/config/webpack.common.js create mode 100644 packages/extension-dicom-html/config/webpack.prod.js delete mode 100644 packages/extension-dicom-microscopy/.eslintrc create mode 100644 packages/extension-dicom-microscopy/config/webpack.common.js create mode 100644 packages/extension-dicom-microscopy/config/webpack.prod.js delete mode 100644 packages/extension-dicom-pdf/.eslintrc delete mode 100644 packages/extension-dicom-pdf/.prettierrc create mode 100644 packages/extension-dicom-pdf/config/webpack.common.js create mode 100644 packages/extension-dicom-pdf/config/webpack.prod.js delete mode 100644 packages/extension-vtk/.editorconfig delete mode 100644 packages/extension-vtk/.eslintrc delete mode 100644 packages/extension-vtk/.gitignore delete mode 100644 packages/extension-vtk/.travis.yml diff --git a/packages/_components/.eslintrc b/.eslintrc similarity index 72% rename from packages/_components/.eslintrc rename to .eslintrc index 7556af95d..49f82e81c 100644 --- a/packages/_components/.eslintrc +++ b/.eslintrc @@ -13,5 +13,11 @@ "react": { "version": "detect" } + }, + "globals": { + "cy": true, + "context": true, + "Cypress": true, + "assert": true } } diff --git a/package.json b/package.json index 27a0123c0..ff607bf27 100644 --- a/package.json +++ b/package.json @@ -6,6 +6,7 @@ ], "scripts": { "start": "lerna run lerna:start --parallel", + "build:magic": "lerna run lerna:build --parallel", "build": "lerna exec --parallel -- babel --root-mode upward src -d lib --ignore **/*.story.js,**/*.spec.js" }, "husky": { diff --git a/packages/_components/.gitattributes b/packages/_components/.gitattributes deleted file mode 100644 index fcadb2cf9..000000000 --- a/packages/_components/.gitattributes +++ /dev/null @@ -1 +0,0 @@ -* text eol=lf diff --git a/packages/_components/.gitignore b/packages/_components/.gitignore deleted file mode 100644 index 65d069f84..000000000 --- a/packages/_components/.gitignore +++ /dev/null @@ -1,32 +0,0 @@ - -# See https://help.github.com/ignore-files/ for more about ignoring files. - -# dependencies -node_modules -# Don't track package-lock if we intend to use yarn.lock -package-lock.json - -# builds -build -dist/ -.rpt2_cache -.docz/ -.yalc -yalc.lock - -# Log -npm-debug.log* -yarn-debug.log* -yarn-error.log* -.idea - -# misc -.DS_Store -.env.local -.env.development.local -.env.test.local -.env.production.local - -# Can be removed after we update netlify -# to use default .docz/ output destination -example/ diff --git a/packages/_core/.eslintrc b/packages/_core/.eslintrc deleted file mode 100644 index f1460852f..000000000 --- a/packages/_core/.eslintrc +++ /dev/null @@ -1,7 +0,0 @@ -{ - "extends": ["eslint:recommended", "plugin:prettier/recommended"], - "parser": "babel-eslint", - "env": { - "jest": true - } -} diff --git a/packages/_core/.vscode/extensions.json b/packages/_core/.vscode/extensions.json deleted file mode 100644 index d7df89c9c..000000000 --- a/packages/_core/.vscode/extensions.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "recommendations": ["esbenp.prettier-vscode", "dbaeumer.vscode-eslint"] -} diff --git a/packages/_core/.vscode/settings.json b/packages/_core/.vscode/settings.json deleted file mode 100644 index 4b67a8bd3..000000000 --- a/packages/_core/.vscode/settings.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "editor.rulers": [80, 120], - - // === - // Spacing - // === - - "editor.insertSpaces": true, - "editor.tabSize": 2, - "editor.trimAutoWhitespace": true, - "files.trimTrailingWhitespace": true, - "files.eol": "\n", - "files.insertFinalNewline": true, - "files.trimFinalNewlines": true, - - // === - // Event Triggers - // === - - "editor.formatOnSave": true, - "eslint.autoFixOnSave": true, - "eslint.run": "onSave", - "eslint.validate": [ - { "language": "javascript", "autoFix": true }, - { "language": "javascriptreact", "autoFix": true } - ], - "prettier.disableLanguages": [], - "prettier.endOfLine": "lf" -} diff --git a/packages/_core/config/webpack.common.js b/packages/_core/config/webpack.common.js new file mode 100644 index 000000000..cabcecec9 --- /dev/null +++ b/packages/_core/config/webpack.common.js @@ -0,0 +1,51 @@ +const path = require('path'); +const webpack = require('webpack'); +const ExtractCssChunks = require('extract-css-chunks-webpack-plugin'); + +const SRC_DIR = path.join(__dirname, '../src'); +const DIST_DIR = path.join(__dirname, '../dist'); + +module.exports = (env, argv) => { + return { + entry: { + app: `${SRC_DIR}/index.js`, + }, + context: SRC_DIR, + resolve: { + extensions: ['.js', '.jsx', '.json', '*'], + symlinks: true, + }, + module: { + rules: [ + { + test: /\.js$/, + exclude: [/node_modules/], + 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, + }, + ], + ], + }, + }, + ], + }, + plugins: [ + new webpack.EnvironmentPlugin(['NODE_ENV']), + new ExtractCssChunks({ + filename: '[name].css', + chunkFilename: '[id].css', + // hot: true /* only necessary if hot reloading not function*/ + }), + ], + }; +}; diff --git a/packages/_core/config/webpack.prod.js b/packages/_core/config/webpack.prod.js new file mode 100644 index 000000000..5c1893c19 --- /dev/null +++ b/packages/_core/config/webpack.prod.js @@ -0,0 +1,38 @@ +const merge = require('webpack-merge'); +const path = require('path'); +const common = require('./webpack.common'); +const pkg = require('./../package.json'); + +const ROOT_DIR = path.join(__dirname, './..'); +const SRC_DIR = path.join(__dirname, '../src'); +const DIST_DIR = path.join(__dirname, '../dist'); + +module.exports = (env, argv) => { + const commonConfig = common(env, argv); + + return merge(commonConfig, { + mode: 'production', + stats: { + colors: false, + hash: true, + timings: true, + assets: true, + chunks: true, + chunkModules: true, + modules: true, + children: true, + warnings: true, + }, + optimization: { + minimize: true, + sideEffects: true, + }, + output: { + path: ROOT_DIR, + library: 'ohifCore', + libraryTarget: 'umd', + filename: pkg.main, + auxiliaryComment: 'Test Comment', + }, + }); +}; diff --git a/packages/_core/package.json b/packages/_core/package.json index 61ff55b51..4439798f6 100644 --- a/packages/_core/package.json +++ b/packages/_core/package.json @@ -6,8 +6,10 @@ "license": "MIT", "repository": "OHIF/ohif-core", "main": "dist/index.umd.js", - "module": "dist/index.es.js", - "jsnext:main": "dist/index.es.js", + "browser": "dist/index.umd.jd", + "module": "src/index.js", + "jsnext:main": "src/index.js", + "sideEffects": "false", "engines": { "node": ">=8", "npm": ">=5" @@ -15,6 +17,7 @@ "scripts": { "cm": "npx git-cz", "build": "rollup -c", + "lerna:build": "webpack --config config/webpack.prod.js -w -d", "dev": "jest --watch", "start": "rollup -c -w", "test": "jest", diff --git a/packages/_i18n/.editorconfig b/packages/_i18n/.editorconfig deleted file mode 100644 index 9d08a1a82..000000000 --- a/packages/_i18n/.editorconfig +++ /dev/null @@ -1,9 +0,0 @@ -root = true - -[*] -charset = utf-8 -indent_style = space -indent_size = 2 -end_of_line = lf -insert_final_newline = true -trim_trailing_whitespace = true diff --git a/packages/_i18n/config/webpack.common.js b/packages/_i18n/config/webpack.common.js new file mode 100644 index 000000000..19d155a9c --- /dev/null +++ b/packages/_i18n/config/webpack.common.js @@ -0,0 +1,67 @@ +const path = require('path'); +const webpack = require('webpack'); +const ExtractCssChunks = require('extract-css-chunks-webpack-plugin'); + +const SRC_DIR = path.join(__dirname, '../src'); +const DIST_DIR = path.join(__dirname, '../dist'); + +module.exports = (env, argv) => { + return { + entry: { + app: `${SRC_DIR}/index.js`, + }, + context: SRC_DIR, + resolve: { + extensions: ['.js', '.jsx', '.json', '*'], + symlinks: true, + }, + module: { + rules: [ + { + test: /\.jsx?$/, + exclude: [/node_modules/], + 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, + }, + ], + ], + }, + }, + { + test: /\.css$/, + use: [ + 'style-loader', + ExtractCssChunks.loader, + { loader: 'css-loader', options: { importLoaders: 1 } }, + { + loader: 'postcss-loader', + options: { + config: { + path: './postcss.config.js', + }, + }, + }, + ], + }, + ], + }, + plugins: [ + new webpack.EnvironmentPlugin(['NODE_ENV']), + new ExtractCssChunks({ + filename: '[name].css', + chunkFilename: '[id].css', + // hot: true /* only necessary if hot reloading not function*/ + }), + ], + }; +}; diff --git a/packages/_i18n/config/webpack.prod.js b/packages/_i18n/config/webpack.prod.js new file mode 100644 index 000000000..a77e5dace --- /dev/null +++ b/packages/_i18n/config/webpack.prod.js @@ -0,0 +1,64 @@ +const merge = require('webpack-merge'); +const path = require('path'); +const common = require('./webpack.common'); +const pkg = require('./../package.json'); + +const ROOT_DIR = path.join(__dirname, './..'); +const SRC_DIR = path.join(__dirname, '../src'); +const DIST_DIR = path.join(__dirname, '../dist'); + +module.exports = (env, argv) => { + const commonConfig = common(env, argv); + + return merge(commonConfig, { + mode: 'production', + stats: { + colors: false, + hash: true, + timings: true, + assets: true, + chunks: true, + chunkModules: true, + modules: true, + children: true, + warnings: true, + }, + optimization: { + minimize: true, + sideEffects: true, + }, + output: { + path: ROOT_DIR, + library: 'ohifCornerstoneExtension', + libraryTarget: 'umd', + filename: pkg.main, + auxiliaryComment: 'Test Comment', + }, + module: { + rules: [ + { + test: /\.(gif|jpe?g|png|svg)$/i, + use: [ + { + loader: 'url-loader', + options: { + limit: 8192, + }, + }, + ], + }, + { + test: /\.(ttf|eot|woff|woff2)$/i, + use: [ + { + loader: 'url-loader', + options: { + limit: 50000, + }, + }, + ], + }, + ], + }, + }); +}; diff --git a/packages/_i18n/package.json b/packages/_i18n/package.json index 6a8dbcdad..e48e2e2f2 100644 --- a/packages/_i18n/package.json +++ b/packages/_i18n/package.json @@ -14,6 +14,7 @@ }, "scripts": { "build": "rollup -c", + "lerna:build": "webpack --config config/webpack.prod.js -w -d", "prepublishOnly": "npm run build", "pullTranslations": "./pullTranslations.sh" }, diff --git a/packages/_viewer/.eslintrc b/packages/_viewer/.eslintrc deleted file mode 100644 index cd4851252..000000000 --- a/packages/_viewer/.eslintrc +++ /dev/null @@ -1,18 +0,0 @@ -{ - "extends": ["react-app", "eslint:recommended", "plugin:react/recommended"], - "parser": "babel-eslint", - "env": { - "jest": true - }, - "settings": { - "react": { - "version": "detect" - } - }, - "globals": { - "cy": true, - "context": true, - "Cypress": true, - "assert": true - } -} diff --git a/packages/extension-cornerstone/package.json b/packages/extension-cornerstone/package.json index bc9983b4c..6533c6a01 100644 --- a/packages/extension-cornerstone/package.json +++ b/packages/extension-cornerstone/package.json @@ -14,7 +14,7 @@ }, "scripts": { "build": "rollup -c", - "hello": "webpack --config config/webpack.prod.js -w -d", + "lerna:build": "webpack --config config/webpack.prod.js -w -d", "prepublishOnly": "npm run build", "start": "rollup -c -w", "lint": "eslint -c .eslintrc --fix src && prettier --single-quote --write src/**/*.{js,jsx,json,css}" diff --git a/packages/extension-dicom-html/config/webpack.common.js b/packages/extension-dicom-html/config/webpack.common.js new file mode 100644 index 000000000..19d155a9c --- /dev/null +++ b/packages/extension-dicom-html/config/webpack.common.js @@ -0,0 +1,67 @@ +const path = require('path'); +const webpack = require('webpack'); +const ExtractCssChunks = require('extract-css-chunks-webpack-plugin'); + +const SRC_DIR = path.join(__dirname, '../src'); +const DIST_DIR = path.join(__dirname, '../dist'); + +module.exports = (env, argv) => { + return { + entry: { + app: `${SRC_DIR}/index.js`, + }, + context: SRC_DIR, + resolve: { + extensions: ['.js', '.jsx', '.json', '*'], + symlinks: true, + }, + module: { + rules: [ + { + test: /\.jsx?$/, + exclude: [/node_modules/], + 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, + }, + ], + ], + }, + }, + { + test: /\.css$/, + use: [ + 'style-loader', + ExtractCssChunks.loader, + { loader: 'css-loader', options: { importLoaders: 1 } }, + { + loader: 'postcss-loader', + options: { + config: { + path: './postcss.config.js', + }, + }, + }, + ], + }, + ], + }, + plugins: [ + new webpack.EnvironmentPlugin(['NODE_ENV']), + new ExtractCssChunks({ + filename: '[name].css', + chunkFilename: '[id].css', + // hot: true /* only necessary if hot reloading not function*/ + }), + ], + }; +}; diff --git a/packages/extension-dicom-html/config/webpack.prod.js b/packages/extension-dicom-html/config/webpack.prod.js new file mode 100644 index 000000000..a77e5dace --- /dev/null +++ b/packages/extension-dicom-html/config/webpack.prod.js @@ -0,0 +1,64 @@ +const merge = require('webpack-merge'); +const path = require('path'); +const common = require('./webpack.common'); +const pkg = require('./../package.json'); + +const ROOT_DIR = path.join(__dirname, './..'); +const SRC_DIR = path.join(__dirname, '../src'); +const DIST_DIR = path.join(__dirname, '../dist'); + +module.exports = (env, argv) => { + const commonConfig = common(env, argv); + + return merge(commonConfig, { + mode: 'production', + stats: { + colors: false, + hash: true, + timings: true, + assets: true, + chunks: true, + chunkModules: true, + modules: true, + children: true, + warnings: true, + }, + optimization: { + minimize: true, + sideEffects: true, + }, + output: { + path: ROOT_DIR, + library: 'ohifCornerstoneExtension', + libraryTarget: 'umd', + filename: pkg.main, + auxiliaryComment: 'Test Comment', + }, + module: { + rules: [ + { + test: /\.(gif|jpe?g|png|svg)$/i, + use: [ + { + loader: 'url-loader', + options: { + limit: 8192, + }, + }, + ], + }, + { + test: /\.(ttf|eot|woff|woff2)$/i, + use: [ + { + loader: 'url-loader', + options: { + limit: 50000, + }, + }, + ], + }, + ], + }, + }); +}; diff --git a/packages/extension-dicom-html/package.json b/packages/extension-dicom-html/package.json index 43062e486..3ed7fed23 100644 --- a/packages/extension-dicom-html/package.json +++ b/packages/extension-dicom-html/package.json @@ -14,6 +14,7 @@ }, "scripts": { "build": "rollup -c", + "lerna:build": "webpack --config config/webpack.prod.js -w -d", "prepublishOnly": "npm run build", "start": "rollup -c -w", "lint": "eslint -c .eslintrc --fix src && prettier --single-quote --write src/**/*.{js,jsx,json,css}" diff --git a/packages/extension-dicom-microscopy/.eslintrc b/packages/extension-dicom-microscopy/.eslintrc deleted file mode 100644 index 77d67cd94..000000000 --- a/packages/extension-dicom-microscopy/.eslintrc +++ /dev/null @@ -1,16 +0,0 @@ -{ - "extends": [ - "react-app", - "eslint:recommended", - "plugin:react/recommended" - ], - "parser": "babel-eslint", - "env": { - "jest": true - }, - "settings": { - "react": { - "version": "detect", - }, - }, -} diff --git a/packages/extension-dicom-microscopy/config/webpack.common.js b/packages/extension-dicom-microscopy/config/webpack.common.js new file mode 100644 index 000000000..19d155a9c --- /dev/null +++ b/packages/extension-dicom-microscopy/config/webpack.common.js @@ -0,0 +1,67 @@ +const path = require('path'); +const webpack = require('webpack'); +const ExtractCssChunks = require('extract-css-chunks-webpack-plugin'); + +const SRC_DIR = path.join(__dirname, '../src'); +const DIST_DIR = path.join(__dirname, '../dist'); + +module.exports = (env, argv) => { + return { + entry: { + app: `${SRC_DIR}/index.js`, + }, + context: SRC_DIR, + resolve: { + extensions: ['.js', '.jsx', '.json', '*'], + symlinks: true, + }, + module: { + rules: [ + { + test: /\.jsx?$/, + exclude: [/node_modules/], + 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, + }, + ], + ], + }, + }, + { + test: /\.css$/, + use: [ + 'style-loader', + ExtractCssChunks.loader, + { loader: 'css-loader', options: { importLoaders: 1 } }, + { + loader: 'postcss-loader', + options: { + config: { + path: './postcss.config.js', + }, + }, + }, + ], + }, + ], + }, + plugins: [ + new webpack.EnvironmentPlugin(['NODE_ENV']), + new ExtractCssChunks({ + filename: '[name].css', + chunkFilename: '[id].css', + // hot: true /* only necessary if hot reloading not function*/ + }), + ], + }; +}; diff --git a/packages/extension-dicom-microscopy/config/webpack.prod.js b/packages/extension-dicom-microscopy/config/webpack.prod.js new file mode 100644 index 000000000..a77e5dace --- /dev/null +++ b/packages/extension-dicom-microscopy/config/webpack.prod.js @@ -0,0 +1,64 @@ +const merge = require('webpack-merge'); +const path = require('path'); +const common = require('./webpack.common'); +const pkg = require('./../package.json'); + +const ROOT_DIR = path.join(__dirname, './..'); +const SRC_DIR = path.join(__dirname, '../src'); +const DIST_DIR = path.join(__dirname, '../dist'); + +module.exports = (env, argv) => { + const commonConfig = common(env, argv); + + return merge(commonConfig, { + mode: 'production', + stats: { + colors: false, + hash: true, + timings: true, + assets: true, + chunks: true, + chunkModules: true, + modules: true, + children: true, + warnings: true, + }, + optimization: { + minimize: true, + sideEffects: true, + }, + output: { + path: ROOT_DIR, + library: 'ohifCornerstoneExtension', + libraryTarget: 'umd', + filename: pkg.main, + auxiliaryComment: 'Test Comment', + }, + module: { + rules: [ + { + test: /\.(gif|jpe?g|png|svg)$/i, + use: [ + { + loader: 'url-loader', + options: { + limit: 8192, + }, + }, + ], + }, + { + test: /\.(ttf|eot|woff|woff2)$/i, + use: [ + { + loader: 'url-loader', + options: { + limit: 50000, + }, + }, + ], + }, + ], + }, + }); +}; diff --git a/packages/extension-dicom-microscopy/package.json b/packages/extension-dicom-microscopy/package.json index 0eeb1be35..12d69852f 100644 --- a/packages/extension-dicom-microscopy/package.json +++ b/packages/extension-dicom-microscopy/package.json @@ -14,6 +14,7 @@ }, "scripts": { "build": "rollup -c", + "lerna:build": "webpack --config config/webpack.prod.js -w -d", "prepublishOnly": "npm run build", "start": "rollup -c -w", "lint": "eslint -c .eslintrc --fix src && prettier --single-quote --write src/**/*.{js,jsx,json,css}" diff --git a/packages/extension-dicom-pdf/.eslintrc b/packages/extension-dicom-pdf/.eslintrc deleted file mode 100644 index 77d67cd94..000000000 --- a/packages/extension-dicom-pdf/.eslintrc +++ /dev/null @@ -1,16 +0,0 @@ -{ - "extends": [ - "react-app", - "eslint:recommended", - "plugin:react/recommended" - ], - "parser": "babel-eslint", - "env": { - "jest": true - }, - "settings": { - "react": { - "version": "detect", - }, - }, -} diff --git a/packages/extension-dicom-pdf/.prettierrc b/packages/extension-dicom-pdf/.prettierrc deleted file mode 100644 index 12348ec6a..000000000 --- a/packages/extension-dicom-pdf/.prettierrc +++ /dev/null @@ -1,9 +0,0 @@ -{ - "trailingComma": "es5", - "printWidth": 80, - "proseWrap": "always", - "tabWidth": 2, - "semi": true, - "singleQuote": true, - "endOfLine": "lf" -} diff --git a/packages/extension-dicom-pdf/config/webpack.common.js b/packages/extension-dicom-pdf/config/webpack.common.js new file mode 100644 index 000000000..19d155a9c --- /dev/null +++ b/packages/extension-dicom-pdf/config/webpack.common.js @@ -0,0 +1,67 @@ +const path = require('path'); +const webpack = require('webpack'); +const ExtractCssChunks = require('extract-css-chunks-webpack-plugin'); + +const SRC_DIR = path.join(__dirname, '../src'); +const DIST_DIR = path.join(__dirname, '../dist'); + +module.exports = (env, argv) => { + return { + entry: { + app: `${SRC_DIR}/index.js`, + }, + context: SRC_DIR, + resolve: { + extensions: ['.js', '.jsx', '.json', '*'], + symlinks: true, + }, + module: { + rules: [ + { + test: /\.jsx?$/, + exclude: [/node_modules/], + 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, + }, + ], + ], + }, + }, + { + test: /\.css$/, + use: [ + 'style-loader', + ExtractCssChunks.loader, + { loader: 'css-loader', options: { importLoaders: 1 } }, + { + loader: 'postcss-loader', + options: { + config: { + path: './postcss.config.js', + }, + }, + }, + ], + }, + ], + }, + plugins: [ + new webpack.EnvironmentPlugin(['NODE_ENV']), + new ExtractCssChunks({ + filename: '[name].css', + chunkFilename: '[id].css', + // hot: true /* only necessary if hot reloading not function*/ + }), + ], + }; +}; diff --git a/packages/extension-dicom-pdf/config/webpack.prod.js b/packages/extension-dicom-pdf/config/webpack.prod.js new file mode 100644 index 000000000..a77e5dace --- /dev/null +++ b/packages/extension-dicom-pdf/config/webpack.prod.js @@ -0,0 +1,64 @@ +const merge = require('webpack-merge'); +const path = require('path'); +const common = require('./webpack.common'); +const pkg = require('./../package.json'); + +const ROOT_DIR = path.join(__dirname, './..'); +const SRC_DIR = path.join(__dirname, '../src'); +const DIST_DIR = path.join(__dirname, '../dist'); + +module.exports = (env, argv) => { + const commonConfig = common(env, argv); + + return merge(commonConfig, { + mode: 'production', + stats: { + colors: false, + hash: true, + timings: true, + assets: true, + chunks: true, + chunkModules: true, + modules: true, + children: true, + warnings: true, + }, + optimization: { + minimize: true, + sideEffects: true, + }, + output: { + path: ROOT_DIR, + library: 'ohifCornerstoneExtension', + libraryTarget: 'umd', + filename: pkg.main, + auxiliaryComment: 'Test Comment', + }, + module: { + rules: [ + { + test: /\.(gif|jpe?g|png|svg)$/i, + use: [ + { + loader: 'url-loader', + options: { + limit: 8192, + }, + }, + ], + }, + { + test: /\.(ttf|eot|woff|woff2)$/i, + use: [ + { + loader: 'url-loader', + options: { + limit: 50000, + }, + }, + ], + }, + ], + }, + }); +}; diff --git a/packages/extension-dicom-pdf/package.json b/packages/extension-dicom-pdf/package.json index 8110985a4..224b0e182 100644 --- a/packages/extension-dicom-pdf/package.json +++ b/packages/extension-dicom-pdf/package.json @@ -14,6 +14,7 @@ }, "scripts": { "build": "rollup -c", + "lerna:build": "webpack --config config/webpack.prod.js -w -d", "prepublishOnly": "npm run build", "start": "rollup -c -w", "lint": "eslint -c .eslintrc --fix src && prettier --single-quote --write src/**/*.{js,jsx,json,css}" diff --git a/packages/extension-vtk/.editorconfig b/packages/extension-vtk/.editorconfig deleted file mode 100644 index 9d08a1a82..000000000 --- a/packages/extension-vtk/.editorconfig +++ /dev/null @@ -1,9 +0,0 @@ -root = true - -[*] -charset = utf-8 -indent_style = space -indent_size = 2 -end_of_line = lf -insert_final_newline = true -trim_trailing_whitespace = true diff --git a/packages/extension-vtk/.eslintrc b/packages/extension-vtk/.eslintrc deleted file mode 100644 index 77d67cd94..000000000 --- a/packages/extension-vtk/.eslintrc +++ /dev/null @@ -1,16 +0,0 @@ -{ - "extends": [ - "react-app", - "eslint:recommended", - "plugin:react/recommended" - ], - "parser": "babel-eslint", - "env": { - "jest": true - }, - "settings": { - "react": { - "version": "detect", - }, - }, -} diff --git a/packages/extension-vtk/.gitignore b/packages/extension-vtk/.gitignore deleted file mode 100644 index 32c3cd466..000000000 --- a/packages/extension-vtk/.gitignore +++ /dev/null @@ -1,26 +0,0 @@ - -# See https://help.github.com/ignore-files/ for more about ignoring files. - -# dependencies -node_modules - -# builds -build -dist -.rpt2_cache - -# misc -.DS_Store -.env -.env.local -.env.development.local -.env.test.local -.env.production.local - -npm-debug.log* -yarn-debug.log* -yarn-error.log* -.idea - -yalc.lock -.yalc \ No newline at end of file diff --git a/packages/extension-vtk/.travis.yml b/packages/extension-vtk/.travis.yml deleted file mode 100644 index 984658c93..000000000 --- a/packages/extension-vtk/.travis.yml +++ /dev/null @@ -1,4 +0,0 @@ -language: node_js -node_js: - - 9 - - 8 diff --git a/packages/extension-vtk/package.json b/packages/extension-vtk/package.json index 9c2f5def9..7f5f43038 100644 --- a/packages/extension-vtk/package.json +++ b/packages/extension-vtk/package.json @@ -11,13 +11,9 @@ "npm": ">=5" }, "scripts": { - "build": "webpack --progress --colors --mode development", - "build:release": "webpack --progress --colors --mode production", - "start": "webpack --watch --progress --colors --mode development", - "prepare": "yarn run build:release", - "predeploy": "cd example && yarn install && yarn run build:release", - "prepublishOnly": "yarn install && yarn run build:release", - "lint": "eslint -c .eslintrc --fix src && prettier --single-quote --write src/**/*.{js,jsx,json,css}" + "lerna:build": "webpack --progress --colors --mode production", + "lerna:dev": "webpack --watch --progress --colors --mode development", + "prepublishOnly": "yarn install && yarn run lerna:build" }, "peerDependencies": { "@ohif/i18n": "0.2.2", diff --git a/packages/extension-vtk/webpack.config.js b/packages/extension-vtk/webpack.config.js index 7847d40ab..e83c9fd5e 100644 --- a/packages/extension-vtk/webpack.config.js +++ b/packages/extension-vtk/webpack.config.js @@ -13,15 +13,15 @@ const cssRules = [ { loader: 'postcss-loader', options: { - plugins: () => [autoprefixer('last 2 version', 'ie >= 10')] - } - } - ] + plugins: () => [autoprefixer('last 2 version', 'ie >= 10')], + }, + }, + ], }, { test: /\.glsl$/i, include: /vtk\.js[\/\\]Sources/, - loader: 'shader-loader' + loader: 'shader-loader', }, { test: /\.worker\.js$/, @@ -29,9 +29,9 @@ const cssRules = [ use: [ { loader: 'worker-loader', - options: { inline: true, fallback: false } - } - ] + options: { inline: true, fallback: false }, + }, + ], }, { test: /\.css$/, @@ -42,17 +42,17 @@ const cssRules = [ loader: 'css-loader', options: { localIdentName: '[name]-[local]_[sha512:hash:base64:5]', - modules: true - } + modules: true, + }, }, { loader: 'postcss-loader', options: { - plugins: () => [autoprefixer('last 2 version', 'ie >= 10')] - } - } - ] - } + plugins: () => [autoprefixer('last 2 version', 'ie >= 10')], + }, + }, + ], + }, ]; var entry = path.join(__dirname, './src/index.js'); @@ -66,19 +66,40 @@ module.exports = { filename: 'index.umd.js', library: '@ohif/extension-vtk', libraryTarget: 'umd', - globalObject: 'this' + globalObject: 'this', }, module: { rules: [ { test: /\.(js|jsx)$/, exclude: /node_modules/, - use: ['babel-loader'] - } - ].concat(cssRules) + 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: { - modules: [path.resolve(__dirname, 'node_modules'), sourcePath] + modules: [ + // Modules specific to this package + path.resolve(__dirname, 'node_modules'), + // Hoisted Yarn Workspace Modules + path.resolve(__dirname, '../../node_modules'), + sourcePath, + ], }, externals: [ { @@ -86,14 +107,14 @@ module.exports = { commonjs: 'cornerstone-core', commonjs2: 'cornerstone-core', amd: 'cornerstone-core', - root: 'cornerstone' + root: 'cornerstone', }, 'cornerstone-math': { commonjs: 'cornerstone-math', commonjs2: 'cornerstone-math', amd: 'cornerstone-math', - root: 'cornerstoneMath' - } + root: 'cornerstoneMath', + }, }, '@ohif/i18n', 'ohif-core', @@ -104,7 +125,7 @@ module.exports = { 'react-redux', //: 'ReactRedux', 'react-resize-detector', //: 'ReactResizeDetector', 'react-viewerbase', //: 'reactViewerbase', - 'prop-types' //: 'PropTypes' + 'prop-types', //: 'PropTypes' /*/\b(vtk.js)/*/ - ] + ], };