antfu-collective / vite-ssg

Static site generation for Vue 3 on Vite
MIT License
1.32k stars 136 forks source link

Build error with dayjs and element-plus #272

Closed HYzihong closed 2 years ago

HYzihong commented 2 years ago

Describe the bug

vite-ssg build error with dayjs and element-plus vite.config.ts

// fork by https://github.com/antfu/vitesse
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'
// ...
   Components({
      // allow auto load markdown components under `./src/components/`
      extensions: ['vue', 'md'],
      // allow auto import and register components used in markdown
      include: [/\.vue$/, /\.vue\?vue/, /\.md$/],
      dts: 'src/components.d.ts',
      resolvers: [
        ElementPlusResolver({
          importStyle: 'sass',
          directives: true,
          version: '1.3.0-beta.10',
        }),
      ],
    }),

  ssgOptions: {
    script: 'async',
    formatting: 'minify',
    onFinished() { generateSitemap() },
  },
// ...

plugin/dayjs


import 'dayjs/locale/zh-cn' 
import type{ ConfigType, ManipulateType } from 'dayjs'
import isBetween from 'dayjs/plugin/isBetween'

dayjs.locale('zh-cn')
dayjs.extend(isBetween)

export default dayjs

executive build command

> vite-ssg build
...
An internal error occurred.
[vite-ssg] Please report an issue, if none already exists: https://github.com/antfu/vite-ssg/issues
node:internal/process/promises:246
          triggerUncaughtException(err, true /* fromPromise */);
          ^

Error [ERR_MODULE_NOT_FOUND]: Cannot find module '/.../node_modules/dayjs/locale/zh-cn' imported from /.../.vite-ssg-temp/main.mjs
Did you mean to import dayjs@1.11.4/node_modules/dayjs/locale/zh-cn.js?
    at new NodeError (node:internal/errors:363:5)
    at finalizeResolution (node:internal/modules/esm/resolve:307:11)
    at moduleResolve (node:internal/modules/esm/resolve:742:10)
    at Loader.defaultResolve [as _resolve] (node:internal/modules/esm/resolve:853:11)
    at Loader.resolve (node:internal/modules/esm/loader:89:40)
    at Loader.getModuleJob (node:internal/modules/esm/loader:242:28)
    at ModuleWrap.<anonymous> (node:internal/modules/esm/module_job:73:40)
    at link (node:internal/modules/esm/module_job:72:36) {
  code: 'ERR_MODULE_NOT_FOUND'
}
 ELIFECYCLE  Command failed with exit code 1.

reference https://github.com/antfu/vite-ssg/issues/182 I'm going to change it to theta


ssgOptions: {
    script: 'async',
    formatting: 'minify',
    format: 'cjs',
    onFinished() { generateSitemap() },
  },

executive build command

> vite-ssg build
...
An internal error occurred.
[vite-ssg] Please report an issue, if none already exists: https://github.com/antfu/vite-ssg/issues
node:internal/process/promises:246
          triggerUncaughtException(err, true /* fromPromise */);
          ^

Error [ERR_REQUIRE_ESM]: Must use import to load ES Module: /.../node_modules/.pnpm/element-plus@2.2.10_vue@3.2.37/node_modules/element-plus/es/index.mjs
    at new NodeError (node:internal/errors:363:5)
    at Module.load (node:internal/modules/cjs/loader:987:11)
    at Function.Module._load (node:internal/modules/cjs/loader:829:14)
    at Module.require (node:internal/modules/cjs/loader:1013:19)
    at require (node:internal/modules/cjs/helpers:93:18)
    at Module.<anonymous> (/.../.vite-ssg-temp/main.cjs:13:12)
    at Module._compile (node:internal/modules/cjs/loader:1109:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1138:10)
    at Module.load (node:internal/modules/cjs/loader:989:32)
    at Function.Module._load (node:internal/modules/cjs/loader:829:14) {
  code: 'ERR_REQUIRE_ESM'
}
 ELIFECYCLE  Command failed with exit code 1.

System Info

System:
    OS: macOS 
  Binaries:
    Node: 16.1.0 - ~/.nvm/versions/node/v16.1.0/bin/node
    Yarn: 1.22.10 - ~/.nvm/versions/node/v16.1.0/bin/yarn
    npm: 8.3.2 - ~/.nvm/versions/node/v16.1.0/bin/npm
  Browsers:
    Chrome: 103.0.5060.134
    Firefox: 89.0
    Safari: 15.5

Used Package Manager

pnpm

Validations

antfu commented 2 years ago

/cc @sxzz if you are interested in taking a look 👀

sxzz commented 2 years ago

Please provide a minimum reproduction https://antfu.me/posts/why-reproductions-are-required-zh

antfu commented 2 years ago

We temporarily close this due to the lack of enough information. Please provide a minimal reproduction to reopen the issue. Thanks.

Why reproduction is required