比如有一个组件
import React, { createElement } from 'react';
import C from './C'
function A(){
console.log(111)
console.log(C)
// return <div>111</div>
}
A.a=1111;
export default A
用rollup打包后会产生一个umd 格式的runtime.js
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('react')) :
typeof define === 'function' && define.amd ? define(['react'], factory) :
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, (global.rootcloud = global.rootcloud || {}, global.rootcloud.RootcloudBar = global.rootcloud.RootcloudBar || {}, global.rootcloud.RootcloudBar.runtime = factory(global.React)));
})(this, (function (react) { 'use strict';
function A() {
return /* @__PURE__ */ react.createElement("div", null, "111");
}
A.a = 1111;
var __defProp = Object.defineProperty;
var __defProps = Object.defineProperties;
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __propIsEnum = Object.prototype.propertyIsEnumerable;
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
var __spreadValues = (a, b) => {
for (var prop in b || (b = {}))
if (__hasOwnProp.call(b, prop))
__defNormalProp(a, prop, b[prop]);
if (__getOwnPropSymbols)
for (var prop of __getOwnPropSymbols(b)) {
if (__propIsEnum.call(b, prop))
__defNormalProp(a, prop, b[prop]);
}
return a;
};
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
const Index = (props) => {
return /* @__PURE__ */ react.createElement(A, __spreadProps(__spreadValues({}, props), {
reversal: false
}));
};
return Index;
}));
当我在一个组件里面引入了该runtime.js 后,发现组件上并没有a属性
import ShowCompoment from './runtime'
console.log(ShowCompoment.a) // undefined
请问该怎么处理,才能访问到组件上的A属性呢?
你的 function A 被解析成 react 组件了。你把顶上的 import React, { createElement } from 'react' 注释掉试试