提交 0719fd21 编写于 作者: fxy060608's avatar fxy060608

fix: pre script with src (question/137466)

上级 bfecd5e6
......@@ -2,12 +2,13 @@ import path from 'path'
import { parse as parseUrl } from 'url'
import mime from 'mime/lite'
import fs, { promises as fsp } from 'fs'
import MagicString from 'magic-string'
import { createHash } from 'crypto'
import type { OutputOptions, PluginContext, RenderedChunk } from 'rollup'
import { Plugin } from '../plugin'
import { ResolvedConfig } from '../config'
import { cleanUrl, normalizePath } from '../utils'
import type { OutputOptions, PluginContext, RenderedChunk } from 'rollup'
import MagicString from 'magic-string'
import { createHash } from 'crypto'
import { withSourcemap } from '../../../../vite/utils/utils'
export const assetUrlRE = /__VITE_ASSET__([a-z\d]{8})__(?:\$_(.*?)__)?/g
......@@ -100,7 +101,7 @@ export function assetPlugin(config: ResolvedConfig): Plugin {
if (s) {
return {
code: s.toString(),
map: config.build.sourcemap ? s.generateMap({ hires: true }) : null,
map: withSourcemap(config) ? s.generateMap({ hires: true }) : null,
}
} else {
return null
......
......@@ -3,6 +3,7 @@ import type { ResolvedConfig } from 'vite'
export * from './ast'
export * from './url'
export * from './plugin'
export * from './utils'
// 内置组件css列表,h5平台需要合并进去首页css中
export const buildInCssSet = new Set<string>()
......
import type { ResolvedConfig } from 'vite'
export function withSourcemap(config: ResolvedConfig) {
if (config.command === 'serve') {
return true
}
return !!config.build.sourcemap
}
......@@ -3,6 +3,7 @@ import {
parseProgram,
transformDynamicImports,
updateMiniProgramGlobalComponents,
withSourcemap,
} from '@dcloudio/uni-cli-shared'
import type { SFCScriptCompileOptions } from '@vue/compiler-sfc'
import { dynamicImport } from './usingComponents'
......@@ -33,7 +34,7 @@ export function uniMainJsPlugin(
)
const { code, map } = await transformDynamicImports(source, imports, {
id,
sourceMap: !!opts.resolvedConfig.build.sourcemap,
sourceMap: withSourcemap(opts.resolvedConfig),
dynamicImport,
})
return {
......
......@@ -13,6 +13,7 @@ import {
transformDynamicImports,
updateMiniProgramComponentsByScriptFilename,
updateMiniProgramComponentsByTemplateFilename,
withSourcemap,
} from '@dcloudio/uni-cli-shared'
import { virtualComponentPath, virtualPagePath } from './entry'
......@@ -37,7 +38,7 @@ export function uniUsingComponentsPlugin(
if (filename.endsWith('App.vue')) {
return null
}
const sourceMap = !!resolvedConfig.build.sourcemap
const sourceMap = withSourcemap(resolvedConfig)
const dynamicImportOptions = {
id,
sourceMap,
......
......@@ -42,14 +42,14 @@ export function initPlugins(
addPlugin(
plugins,
uniPrePlugin(extend(uniPrePluginOptions, options)),
uniPrePlugin(config, extend(uniPrePluginOptions, options)),
0,
'pre'
)
addPlugin(
plugins,
uniPreCssPlugin(extend(uniPreCssPluginOptions, options)),
uniPreCssPlugin(config, extend(uniPreCssPluginOptions, options)),
'vite:css'
)
addPlugin(plugins, uniPreVuePlugin(), 'vite:vue', 'pre')
......
import path from 'path'
import debug from 'debug'
import { Plugin } from 'vite'
import { Plugin, ResolvedConfig } from 'vite'
import { createFilter } from '@rollup/pluginutils'
import {
preJs,
......@@ -8,6 +8,7 @@ import {
EXTNAME_JS,
EXTNAME_VUE,
parseVueRequest,
withSourcemap,
} from '@dcloudio/uni-cli-shared'
import { UniPluginFilterOptions } from '.'
......@@ -17,8 +18,12 @@ const debugPreJsTry = debug('vite:uni:pre-js-try')
const PRE_JS_EXTNAME = ['.json', '.css'].concat(EXTNAME_VUE).concat(EXTNAME_JS)
const PRE_HTML_EXTNAME = EXTNAME_VUE
export function uniPrePlugin(options: UniPluginFilterOptions): Plugin {
export function uniPrePlugin(
config: ResolvedConfig,
options: UniPluginFilterOptions
): Plugin {
const filter = createFilter(options.include, options.exclude)
return {
name: 'vite:uni-pre',
transform(code, id) {
......@@ -26,9 +31,6 @@ export function uniPrePlugin(options: UniPluginFilterOptions): Plugin {
return
}
const { filename, query } = parseVueRequest(id)
if (query.vue && query.type !== 'template') {
return
}
const extname = path.extname(filename)
const isHtml =
query.type === 'template' || PRE_HTML_EXTNAME.includes(extname)
......@@ -51,7 +53,7 @@ export function uniPrePlugin(options: UniPluginFilterOptions): Plugin {
}
return {
code,
map: this.getCombinedSourcemap(),
map: withSourcemap(config) ? this.getCombinedSourcemap() : null,
}
},
}
......
import debug from 'debug'
import { Plugin } from 'vite'
import { Plugin, ResolvedConfig } from 'vite'
import { createFilter } from '@rollup/pluginutils'
import { preJs } from '@dcloudio/uni-cli-shared'
import { preJs, withSourcemap } from '@dcloudio/uni-cli-shared'
import { UniPluginFilterOptions } from '.'
......@@ -13,7 +13,10 @@ const cssLangRE = new RegExp(cssLangs)
* preprocess css
* @param options
*/
export function uniPreCssPlugin(options: UniPluginFilterOptions): Plugin {
export function uniPreCssPlugin(
config: ResolvedConfig,
options: UniPluginFilterOptions
): Plugin {
const filter = createFilter(options.include, options.exclude)
return {
name: 'vite:uni-pre-css',
......@@ -31,7 +34,7 @@ export function uniPreCssPlugin(options: UniPluginFilterOptions): Plugin {
debugPre(id)
return {
code: preJs(code),
map: this.getCombinedSourcemap(),
map: withSourcemap(config) ? this.getCombinedSourcemap() : null,
}
},
}
......
......@@ -11,6 +11,7 @@ import {
isIdentifier,
isCallExpression,
isMemberExpression,
withSourcemap,
} from '@dcloudio/uni-cli-shared'
import { UniPluginFilterOptions } from '.'
......@@ -19,7 +20,7 @@ const debugSSR = debug('vite:uni:ssr')
const KEYED_FUNC_RE = /(ssrRef|shallowSsrRef)/
export function uniSSRPlugin(
_config: ResolvedConfig,
config: ResolvedConfig,
options: UniPluginFilterOptions
): Plugin {
const filter = createFilter(options.include, options.exclude)
......@@ -58,7 +59,7 @@ export function uniSSRPlugin(
})
return {
code: s.toString(),
map: s.generateMap().toString(),
map: withSourcemap(config) ? s.generateMap().toString() : null,
}
},
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册