diff --git a/packages/ice-plugin-component/lib/index.js b/packages/ice-plugin-component/lib/index.js index b7a465a..7cd2206 100644 --- a/packages/ice-plugin-component/lib/index.js +++ b/packages/ice-plugin-component/lib/index.js @@ -1,5 +1,6 @@ const path = require('path'); const fse = require('fs-extra'); +const clonedeep = require('lodash.clonedeep'); const { getPkgJSONSync } = require('./utils/pkgJson'); const getDemoDir = require('./utils/getDemoDir'); const getDemos = require('./utils/getDemos'); @@ -18,12 +19,14 @@ module.exports = ({ context, chainWebpack, onHook, log }, opts = {}) => { const { command, rootDir, reRun } = context; const { type = 'fusion' } = opts; const pkg = getPkgJSONSync(rootDir); - // store babel config - let babelConfig; + // store webpack chain config + let webpackChain; // check adaptor folder const hasAdaptor = fse.existsSync(path.join(rootDir, 'adaptor')) && type === 'fusion'; chainWebpack((config) => { + // expose config + webpackChain = config; // add @babel/plugin-transform-runtime // @babel/preset-env modules: commonjs configBabel(config, { @@ -49,7 +52,7 @@ module.exports = ({ context, chainWebpack, onHook, log }, opts = {}) => { ], }); // get babel config for component compile - babelConfig = config.module.rule('jsx').use('babel-loader').get('options'); + const babelConfig = clonedeep(config.module.rule('jsx').use('babel-loader').get('options')); // babel option do not known cacheDirectory delete babelConfig.cacheDirectory; @@ -76,6 +79,9 @@ module.exports = ({ context, chainWebpack, onHook, log }, opts = {}) => { // build src and umd adpator after demo build onHook('afterBuild', () => { process.env.BUILD_AGAIN = true; + // get babel config after all plugin had been excuted + const babelConfig = clonedeep(webpackChain.module.rule('jsx').use('babel-loader').get('options')); + delete babelConfig.cacheDirectory; // component buildSrc buildSrc({ babelConfig, rootDir, log }); modifyPkgHomePage(pkg, rootDir); diff --git a/packages/ice-plugin-component/package.json b/packages/ice-plugin-component/package.json index efc081d..72a37eb 100644 --- a/packages/ice-plugin-component/package.json +++ b/packages/ice-plugin-component/package.json @@ -21,6 +21,7 @@ "ice-npm-utils": "^1.0.3", "js-yaml": "^3.13.1", "loader-utils": "^1.2.3", + "lodash.clonedeep": "^4.5.0", "marked": "^0.6.2", "npmlog": "^4.1.2", "prismjs": "^1.16.0",