Hi,
I try to install antd-img-crop and config this in my NextJs projects following the tutorial: https://github.com/nanxiaobei/antd-img-crop, but it does not work and throws an error: SyntaxError: Cannot use import statement outside a module.
My component use antd-img-crop:
import { UploadOutlined } from '@ant-design/icons';
import { Upload, UploadFile } from 'antd';
import ImgCrop from 'antd-img-crop';
import { RcFile } from 'antd/es/upload';
import dynamic from 'next/dynamic';
import React from 'react';
export interface IImageWithCrop {
style?: React.CSSProperties;
onChange: (value: number) => void;
config: any;
}
const onPreview = async (file: UploadFile) => {
let src = file.url as string;
if (!src) {
src = await new Promise((resolve) => {
const reader = new FileReader();
reader.readAsDataURL(file.originFileObj as RcFile);
reader.onload = () => resolve(reader.result as string);
});
}
const image = new Image();
image.src = src;
const imgWindow = window.open(src);
imgWindow?.document.write(image.outerHTML);
};
const ImageWithCrop: React.FC<IImageWithCrop> = (props) => {
const { onChange, config } = props;
return (
<ImgCrop grid rotate>
<Upload {...config} onPreview={onPreview} onChange={onChange}>
<UploadOutlined />
Upload
</Upload>
</ImgCrop>
);
};
export default dynamic(() => Promise.resolve(ImageWithCrop), { ssr: false });
Error here:
error - /mnt/data/workplaces/personal/templates/nextjs-app-template/node_modules/antd/es/locale-provider/LocaleReceiver.js:1
import _extends from "@babel/runtime/helpers/esm/extends";
^^^^^^
SyntaxError: Cannot use import statement outside a module
at Object.compileFunction (node:vm:360:18)
at wrapSafe (node:internal/modules/cjs/loader:1088:15)
at Module._compile (node:internal/modules/cjs/loader:1123:27)
at Module._extensions..js (node:internal/modules/cjs/loader:1213:10)
at Module.load (node:internal/modules/cjs/loader:1037:32)
at Module._load (node:internal/modules/cjs/loader:878:12)
at Module.require (node:internal/modules/cjs/loader:1061:19)
at require (node:internal/modules/cjs/helpers:103:18)
at Object.<anonymous> (/mnt/data/workplaces/personal/templates/nextjs-app-template/node_modules/antd-img-crop/dist/antd-img-crop.cjs.js:21:22)
at Module._compile (node:internal/modules/cjs/loader:1159:14)
at Module._extensions..js (node:internal/modules/cjs/loader:1213:10)
at Module.load (node:internal/modules/cjs/loader:1037:32)
at Module._load (node:internal/modules/cjs/loader:878:12)
at Module.require (node:internal/modules/cjs/loader:1061:19)
at require (node:internal/modules/cjs/helpers:103:18)
at antd-img-crop (/mnt/data/workplaces/personal/templates/nextjs-app-template/.next/server/pages/admin/dashboard.js:186:18)
at __webpack_require__ (/mnt/data/workplaces/personal/templates/nextjs-app-template/.next/server/webpack-runtime.js:33:42)
at eval (webpack-internal:///./src/components/image-with-crop/ImageWithCrop.tsx:11:71)
at ./src/components/image-with-crop/ImageWithCrop.tsx (/mnt/data/workplaces/personal/templates/nextjs-app-template/.next/server/pages/admin/dashboard.js:77:1)
at __webpack_require__ (/mnt/data/workplaces/personal/templates/nextjs-app-template/.next/server/webpack-runtime.js:33:42)
at eval (webpack-internal:///./src/pages/admin/dashboard.tsx:16:99)
at __webpack_require__.a (/mnt/data/workplaces/personal/templates/nextjs-app-template/.next/server/webpack-runtime.js:97:13)
at eval (webpack-internal:///./src/pages/admin/dashboard.tsx:1:21)
at ./src/pages/admin/dashboard.tsx (/mnt/data/workplaces/personal/templates/nextjs-app-template/.next/server/pages/admin/dashboard.js:121:1)
at __webpack_require__ (/mnt/data/workplaces/personal/templates/nextjs-app-template/.next/server/webpack-runtime.js:33:42)
at __webpack_exec__ (/mnt/data/workplaces/personal/templates/nextjs-app-template/.next/server/pages/admin/dashboard.js:262:39)
at /mnt/data/workplaces/personal/templates/nextjs-app-template/.next/server/pages/admin/dashboard.js:263:28
at Object.<anonymous> (/mnt/data/workplaces/personal/templates/nextjs-app-template/.next/server/pages/admin/dashboard.js:266:3)
at Module._compile (node:internal/modules/cjs/loader:1159:14)
at Module._extensions..js (node:internal/modules/cjs/loader:1213:10)
at Module.load (node:internal/modules/cjs/loader:1037:32)
at Module._load (node:internal/modules/cjs/loader:878:12)
at Module.require (node:internal/modules/cjs/loader:1061:19)
at require (node:internal/modules/cjs/helpers:103:18)
at Object.requirePage (/mnt/data/workplaces/personal/templates/nextjs-app-template/node_modules/next/dist/server/require.js:88:12)
at /mnt/data/workplaces/personal/templates/nextjs-app-template/node_modules/next/dist/server/load-components.js:37:73
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async Object.loadComponents (/mnt/data/workplaces/personal/templates/nextjs-app-template/node_modules/next/dist/server/load-components.js:37:26)
at async DevServer.findPageComponents (/mnt/data/workplaces/personal/templates/nextjs-app-template/node_modules/next/dist/server/next-server.js:561:36)
at async DevServer.renderPageComponent (/mnt/data/workplaces/personal/templates/nextjs-app-template/node_modules/next/dist/server/base-server.js:942:24)
at async DevServer.renderToResponse (/mnt/data/workplaces/personal/templates/nextjs-app-template/node_modules/next/dist/server/base-server.js:971:32)
at async DevServer.pipe (/mnt/data/workplaces/personal/templates/nextjs-app-template/node_modules/next/dist/server/base-server.js:407:25)
at async Object.fn (/mnt/data/workplaces/personal/templates/nextjs-app-template/node_modules/next/dist/server/next-server.js:757:21)
at async Router.execute (/mnt/data/workplaces/personal/templates/nextjs-app-template/node_modules/next/dist/server/router.js:253:36)
at async DevServer.run (/mnt/data/workplaces/personal/templates/nextjs-app-template/node_modules/next/dist/server/base-server.js:384:29)
at async DevServer.run (/mnt/data/workplaces/personal/templates/nextjs-app-template/node_modules/next/dist/server/dev/next-dev-server.js:740:20)
at async DevServer.handleRequest (/mnt/data/workplaces/personal/templates/nextjs-app-template/node_modules/next/dist/server/base-server.js:322:20) {
page: '/admin/dashboard'
}
Hi, I try to install antd-img-crop and config this in my NextJs projects following the tutorial: https://github.com/nanxiaobei/antd-img-crop, but it does not work and throws an error:
SyntaxError: Cannot use import statement outside a module
.My component use antd-img-crop:
Error here:
And package.json:
Please help me, thanks!