diff --git a/CHANGELOG.md b/CHANGELOG.md index a98eaf936e..26d0046762 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,11 +1,11 @@ # Change Log -## 0.9.0 (unreleased) - -### Added +## 0.8.1 (2018-08-03) ### Changes +- Fix compiling when used as a library @robgietema + ## 0.8.0 (2018-08-03) ### Added diff --git a/package.json b/package.json index 6dfeacc891..f9a7a0a09c 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,7 @@ } ], "license": "MIT", - "version": "0.9.0", + "version": "0.8.1", "repository": { "type": "git", "url": "git@github.com:plone/plone-react.git" diff --git a/razzle.config.js b/razzle.config.js index cdb87142dd..6f32786c34 100644 --- a/razzle.config.js +++ b/razzle.config.js @@ -1,6 +1,8 @@ const path = require('path'); const autoprefixer = require('autoprefixer'); const makeLoaderFinder = require('razzle-dev-utils/makeLoaderFinder'); +const nodeExternals = require('webpack-node-externals'); +const fs = require('fs'); const fileLoaderFinder = makeLoaderFinder('file-loader'); const eslintLoaderFinder = makeLoaderFinder('eslint-loader'); @@ -110,8 +112,6 @@ module.exports = { ...fileLoader.exclude, ]; - // const eslintLoader = config.module.rules.find(eslintLoaderFinder); - // eslintLoader.exclude = [path.join(path.resolve('.'), 'src', 'lib')]; // Disabling the ESlint pre loader config.module.rules.splice(0, 1); @@ -122,7 +122,7 @@ module.exports = { config.resolve.alias = { ...config.resolve.alias, '../../theme.config$': `${projectRootPath}/theme/theme.config`, - '@plone/plone-react': `${projectRootPath}/src/lib/plone-react/src/`, + '@plone/plone-react': `${projectRootPath}/node_modules/@plone/plone-react/src/`, ...customizations, }; @@ -131,6 +131,38 @@ module.exports = { maxEntrypointSize: 10000000, }; + const babelRuleIndex = config.module.rules.findIndex( + rule => + rule.use && + rule.use[0].loader && + rule.use[0].loader.includes('babel-loader'), + ); + const { include } = config.module.rules[babelRuleIndex]; + if (fs.existsSync('./node_modules/@plone/plone-react/src')) { + include.push(fs.realpathSync('./node_modules/@plone/plone-react/src')); + } + config.module.rules[babelRuleIndex] = Object.assign( + config.module.rules[babelRuleIndex], + { + include, + }, + ); + config.externals = + target === 'node' + ? [ + nodeExternals({ + whitelist: [ + dev ? 'webpack/hot/poll?300' : null, + /\.(eot|woff|woff2|ttf|otf)$/, + /\.(svg|png|jpg|jpeg|gif|ico)$/, + /\.(mp4|mp3|ogg|swf|webp)$/, + /\.(css|scss|sass|sss|less)$/, + /^@plone\/plone-react/, + ].filter(Boolean), + }), + ] + : []; + return config; }, };