diff --git a/README.md b/README.md index 851ac653..69dd39fc 100644 --- a/README.md +++ b/README.md @@ -44,7 +44,7 @@ import React, { FC } from 'react' import dynamic from 'next/dynamic' const ReactViewer = dynamic( - () => import('react-viewer'), + () => import('react-viewer').then((mod) => mod.default), { ssr: false } ) diff --git a/package-lock.json b/package-lock.json index be765732..9ab9a923 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "react-viewer", - "version": "3.2.3", + "version": "3.2.4", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index fa281d93..84319855 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-viewer", - "version": "3.2.3", + "version": "3.2.4", "description": "react image viewer", "main": "dist/index", "scripts": { @@ -10,9 +10,10 @@ "build": "webpack --config webpack.config.prop.js && npm run build:types", "build:types": "node -e \"require('fs-extra').removeSync('lib')\" && tsc -p tsconfig.build.json", "build:ssr": "npm --prefix ssr-test ci --ignore-scripts && npm --prefix ssr-test run build", + "check:package-export": "node scripts/check-package-export.js", "build:analyze": "ANALYZE=true webpack --config webpack.config.prop.js", "doc": "webpack --config webpack.config.doc.js", - "verify": "npm test -- --runInBand && npm run lint && npm run build && npm run doc && npm run build:ssr && npm pack --dry-run", + "verify": "npm test -- --runInBand && npm run lint && npm run build && npm run check:package-export && npm run doc && npm run build:ssr && npm pack --dry-run", "pub": "npm publish", "prepublishOnly": "npm run build", "predeploy": "npm run doc", @@ -68,6 +69,7 @@ "jest-environment-jsdom": "^23.4.0", "jest-environment-jsdom-global": "^1.1.0", "jest-static-stubs": "0.0.1", + "jsdom": "^11.12.0", "less": "^3.10.3", "less-loader": "^5.0.0", "merge2": "^1.3.0", diff --git a/scripts/check-package-export.js b/scripts/check-package-export.js new file mode 100644 index 00000000..8a921781 --- /dev/null +++ b/scripts/check-package-export.js @@ -0,0 +1,18 @@ +const assert = require('assert'); +const { JSDOM } = require('jsdom'); + +const dom = new JSDOM(''); +global.window = dom.window; +global.document = dom.window.document; +global.navigator = dom.window.navigator; + +const Viewer = require('../dist'); +assert.strictEqual( + typeof Viewer, + 'function', + 'The CommonJS package entry must export the Viewer component directly' +); + +console.log('Package default export is a component.'); +dom.window.close(); +process.exit(0); diff --git a/webpack.config.prop.js b/webpack.config.prop.js index c3cccaca..d5215770 100644 --- a/webpack.config.prop.js +++ b/webpack.config.prop.js @@ -10,6 +10,7 @@ if (fs.existsSync(distPath)) { config.output.merge({ library: 'react-viewer', + libraryExport: 'default', libraryTarget: 'umd', globalObject: 'this' });