diff --git a/plugins/babel-plugin-canyon/features/jian.js b/plugins/babel-plugin-canyon/features/jian.js new file mode 100644 index 00000000..21bf9862 --- /dev/null +++ b/plugins/babel-plugin-canyon/features/jian.js @@ -0,0 +1,8 @@ +function add (a,b) { + if (a>b){ + return a-b + } + return a+b +} + +add(1, 2); diff --git a/plugins/babel-plugin-canyon/package.json b/plugins/babel-plugin-canyon/package.json index d7a70716..e9fbd03f 100644 --- a/plugins/babel-plugin-canyon/package.json +++ b/plugins/babel-plugin-canyon/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-canyon", - "version": "2.0.10", + "version": "2.0.11", "description": "", "scripts": { "release": "babel src --extensions \".ts\" --out-dir lib", diff --git a/plugins/babel-plugin-canyon/src/helpers/generate-initial-coverage.ts b/plugins/babel-plugin-canyon/src/helpers/generate-initial-coverage.ts index 89b924d3..e084aa4d 100644 --- a/plugins/babel-plugin-canyon/src/helpers/generate-initial-coverage.ts +++ b/plugins/babel-plugin-canyon/src/helpers/generate-initial-coverage.ts @@ -2,18 +2,22 @@ import fs from 'fs'; import path from 'path' import {extractCoverageData} from "./extract-coverage-data"; -export const generateInitialCoverage = (paramsPath) => { +export const generateInitialCoverage = (paramsPath,serviceParams) => { const initialCoverageDataForTheCurrentFile = extractCoverageData(paramsPath) - const filePath = './.canyon_output/coverage-final.json'; - const dir = path.dirname(filePath); - if (!fs.existsSync(dir)) { - fs.mkdirSync(dir, {recursive: true}); - } - // 防止返回的数据为空 - if (initialCoverageDataForTheCurrentFile && initialCoverageDataForTheCurrentFile.path) { - fs.writeFileSync(`./.canyon_output/coverage-final-${Math.random()}.json`, JSON.stringify({ - [initialCoverageDataForTheCurrentFile.path]: initialCoverageDataForTheCurrentFile - }, null, 2), 'utf-8'); + // 判断是否是CI环境 + // CI环境才生成.canyon_output/coverage-final.json文件 + if (serviceParams.ci) { + const filePath = './.canyon_output/coverage-final.json'; + const dir = path.dirname(filePath); + if (!fs.existsSync(dir)) { + fs.mkdirSync(dir, {recursive: true}); + } + // 防止返回的数据为空 + if (initialCoverageDataForTheCurrentFile && initialCoverageDataForTheCurrentFile.path) { + fs.writeFileSync(`./.canyon_output/coverage-final-${String(Math.random()).replace('0.','')}.json`, JSON.stringify({ + [initialCoverageDataForTheCurrentFile.path]: initialCoverageDataForTheCurrentFile + }, null, 2), 'utf-8'); + } } return initialCoverageDataForTheCurrentFile; } diff --git a/plugins/babel-plugin-canyon/src/index.ts b/plugins/babel-plugin-canyon/src/index.ts index 6ac63cc2..0a51e70b 100644 --- a/plugins/babel-plugin-canyon/src/index.ts +++ b/plugins/babel-plugin-canyon/src/index.ts @@ -25,6 +25,8 @@ function trim(obj) { }, {}); } +let onlyOne = true + export default declare((api, config, dirname) => { api.assertVersion(7); return { @@ -71,8 +73,16 @@ export default declare((api, config, dirname) => { // 自配置 dsn: config.dsn || process.env['DSN'] || 'http://localhost:3000', reporter: config.reporter || process.env['REPORTER'] || '-', + ci: config.ci || process.env['CI'] || false, }) + if (onlyOne){ + console.log(`canyon args: ----------------`) + console.log(servePa) + console.log(`canyon args: ----------------`) + } + onlyOne = false + const {initialCoverageDataForTheCurrentFile} = visitorProgramExit(api, path, servePa) diff --git a/plugins/babel-plugin-canyon/src/visitor-program-exit.ts b/plugins/babel-plugin-canyon/src/visitor-program-exit.ts index e51521ce..9f2545ce 100644 --- a/plugins/babel-plugin-canyon/src/visitor-program-exit.ts +++ b/plugins/babel-plugin-canyon/src/visitor-program-exit.ts @@ -3,7 +3,7 @@ import generate from "@babel/generator"; export const visitorProgramExit = (api,path,serviceParams) => { - const initialCoverageDataForTheCurrentFile = generateInitialCoverage(generate(path.node).code) + const initialCoverageDataForTheCurrentFile = generateInitialCoverage(generate(path.node).code,serviceParams) if (generate(path.node).code.includes('coverageData')) { const t = api.types; diff --git a/plugins/babel-plugin-canyon/test-babel-config.js b/plugins/babel-plugin-canyon/test-babel-config.js index 074a5744..498e3a06 100644 --- a/plugins/babel-plugin-canyon/test-babel-config.js +++ b/plugins/babel-plugin-canyon/test-babel-config.js @@ -17,6 +17,7 @@ module.exports = { // special: true, //默认false keepMap: true, // 默认false // addAttributes:['branch'], //默认全部,有的话用有的,适用于生产 + ci:true, // 默认false }] ] }