diff --git a/examples/rollup/rollup.config.ts b/examples/rollup/rollup.config.ts index ebfa263..c827de7 100644 --- a/examples/rollup/rollup.config.ts +++ b/examples/rollup/rollup.config.ts @@ -10,8 +10,8 @@ export default defineConfig({ }, external: ['dayjs'], plugins: [ - nodeResolve(), Unplugin({ }), + nodeResolve(), ], }) diff --git a/examples/rollup/src/index.js b/examples/rollup/src/index.js index 7c3bbc9..27ef5b6 100644 --- a/examples/rollup/src/index.js +++ b/examples/rollup/src/index.js @@ -1,5 +1,8 @@ import moment from 'moment' -import hello from './hello' +export { default as hello2 } from './hello' -console.log('🚀 moment', moment()) -console.log('🚀 hello', hello()) +export default function hello() { + moment.locale('zh-cn') + + moment('2019-01-01') +} diff --git a/src/index.ts b/src/index.ts index 1277f3d..5b15d40 100644 --- a/src/index.ts +++ b/src/index.ts @@ -5,16 +5,15 @@ import { presets } from './config/presets' import type { Options } from './types' import { generateCode } from './helpers/generateCode' -const ENTRY_FILE_NAME = 'MOMENT_TO_DAYJS_ENTRY' +const ENTRY_FLAG = 'MOMENT_TO_DAYJS_ENTRY' -export default createUnplugin((options, meta) => { - const { framework } = meta +export default createUnplugin((options) => { const { preset = 'antd' } = options || {} const plugins = options?.plugins ?? presets[preset].plugins const replaceMoment = options?.replaceMoment ?? presets[preset].replaceMoment - const entrySource = '' + let entryId: string return { name: 'unplugin-moment-to-dayjs', @@ -38,7 +37,7 @@ export default createUnplugin((options, meta) => { tag: 'script', attrs: { type: 'module', - src: `${ENTRY_FILE_NAME}`, + src: ENTRY_FLAG, }, injectTo: 'body-prepend', }] @@ -46,13 +45,13 @@ export default createUnplugin((options, meta) => { }, }, rollup: { - resolveId(source, _, options) { + async resolveId(source, importer, options) { if (options.isEntry) - return `${source}?${ENTRY_FILE_NAME}` + entryId = source + + return null }, options: (options) => { - if (framework !== 'rollup') - return options.plugins = [ alias({ entries: { @@ -73,26 +72,25 @@ export default createUnplugin((options, meta) => { }, // transformInclude(id) { // console.log(id) - // return id.includes(ENTRY_FILE_NAME) + // return id.includes(ENTRY_FLAG) // }, - async resolveId(source) { - if (source.includes(ENTRY_FILE_NAME)) - return ENTRY_FILE_NAME + resolveId(source) { + if (source.includes(ENTRY_FLAG)) + return ENTRY_FLAG }, load(id) { - if (framework === 'vite' && id.includes(ENTRY_FILE_NAME)) + if (id.endsWith(ENTRY_FLAG)) return generateCode(plugins) }, transform(code, id) { - if (framework === 'rollup' && id === entrySource) { - const ms = new MagicString(code).prepend(generateCode(plugins)) - + if (id === entryId) { + const ms = new MagicString(code) + ms.append(generateCode(plugins)) return { code: ms.toString(), map: ms.generateMap(), } } - return code }, } })