mirror of
https://github.com/youzan/vant.git
synced 2025-10-19 01:54:48 +00:00
fix(cli): compile commonjs module
This commit is contained in:
@@ -45,7 +45,7 @@ async function compileDir(dir: string) {
|
||||
}
|
||||
|
||||
if (isScript(filePath)) {
|
||||
return compileJs(filePath);
|
||||
return compileJs(filePath, { reloadConfig: true });
|
||||
}
|
||||
|
||||
if (isStyle(filePath)) {
|
||||
@@ -129,7 +129,7 @@ async function buildPackageEntry() {
|
||||
setModuleEnv('commonjs');
|
||||
|
||||
await copy(esEntryFile, libEntryFile);
|
||||
await compileJs(libEntryFile);
|
||||
await compileJs(libEntryFile, { reloadConfig: true });
|
||||
await compileStyle(styleEntryFile);
|
||||
|
||||
stepper.success('Build Package Entry');
|
||||
|
@@ -1,10 +1,49 @@
|
||||
// @ts-ignore
|
||||
import findBabelConfig from 'find-babel-config';
|
||||
import { join } from 'path';
|
||||
import { transformFileAsync } from '@babel/core';
|
||||
import { removeSync, outputFileSync } from 'fs-extra';
|
||||
import { removeSync, outputFileSync, existsSync } from 'fs-extra';
|
||||
import { replaceExt } from '../common';
|
||||
import { CWD, DIST_DIR } from '../common/constant';
|
||||
|
||||
export function compileJs(filePath: string): Promise<undefined> {
|
||||
type Options = {
|
||||
// whether to fouce reload babel config
|
||||
reloadConfig?: boolean;
|
||||
};
|
||||
|
||||
const TEMP_BABEL_CONFIG = join(DIST_DIR, 'babel.config.js');
|
||||
|
||||
function genTempBabelConfig() {
|
||||
const { config } = findBabelConfig.sync(CWD);
|
||||
const content = `module.exports = function (api) {
|
||||
api.cache.never();
|
||||
|
||||
return ${JSON.stringify(config)}
|
||||
};`;
|
||||
|
||||
outputFileSync(TEMP_BABEL_CONFIG, content);
|
||||
}
|
||||
|
||||
function getBabelOptions(options: Options) {
|
||||
if (options.reloadConfig) {
|
||||
if (!existsSync(TEMP_BABEL_CONFIG)) {
|
||||
genTempBabelConfig();
|
||||
}
|
||||
|
||||
return {
|
||||
configFile: TEMP_BABEL_CONFIG
|
||||
};
|
||||
}
|
||||
|
||||
return {};
|
||||
}
|
||||
|
||||
export function compileJs(
|
||||
filePath: string,
|
||||
options: Options = {}
|
||||
): Promise<undefined> {
|
||||
return new Promise((resolve, reject) => {
|
||||
transformFileAsync(filePath)
|
||||
transformFileAsync(filePath, getBabelOptions(options))
|
||||
.then(result => {
|
||||
if (result) {
|
||||
const jsFilePath = replaceExt(filePath, '.js');
|
||||
|
@@ -39,7 +39,7 @@ const version = '${version}';
|
||||
|
||||
function install(Vue) {
|
||||
const components = [
|
||||
${components.filter(item => !skipInstall.includes(item)).join(',\n ')}
|
||||
${components.filter(item => !skipInstall.includes(item)).join(',\n ')}
|
||||
];
|
||||
|
||||
components.forEach(item => {
|
||||
|
Reference in New Issue
Block a user