Skip to content

Commit aa5fef0

Browse files
committed
fix(build-plugin-alt): babelPluginMeta 对 package 中一部分 meta 未定义的情况处理错误
1 parent 5ef5747 commit aa5fef0

3 files changed

Lines changed: 11 additions & 10 deletions

File tree

packages/build-plugin-alt/CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
## 1.3.0
44

55
- `feat` 新增配置项 usePrivateIp,为 true 时 injectInfo 使用 private ip 而非 local ip。
6+
- `fix` babelPluginMeta 对 package 中一部分 meta 未定义的情况处理错误
67

78
## 1.2.2
89

packages/build-plugin-alt/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@alilc/build-plugin-alt",
3-
"version": "1.3.0-beta.0",
3+
"version": "1.3.0",
44
"description": "build-scripts plugin template for developers",
55
"main": "lib/index.js",
66
"files": [

packages/build-plugin-alt/src/babelPluginMeta.ts

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ interface IMeta {
1111
interface IVisitorPass {
1212
opts?: {
1313
filename: string;
14-
meta: IMeta;
14+
meta?: IMeta;
1515
}
1616
filename?: string;
1717
}
@@ -40,22 +40,22 @@ const injectMetaVisitor: Visitor<IInjectVisitorPass> = {
4040
(BabelTypes.isStringLiteral(property) && property.value === 'pluginName')
4141
) {
4242
const meta = pass.meta;
43-
if (meta.pluginName) {
43+
pass.cache.pluginNameAssignmentExists = true;
44+
if (meta?.pluginName) {
4445
path.node.right = BabelTypes.stringLiteral(meta.pluginName);
4546
addInfoComment(path.node);
46-
pass.cache.pluginNameAssignmentExists = true;
4747
}
4848
}
4949
if (
5050
(BabelTypes.isIdentifier(property) && property.name === 'meta') ||
5151
(BabelTypes.isStringLiteral(property) && property.value === 'meta')
5252
) {
5353
const meta = pass.meta;
54-
if (meta.meta) {
54+
pass.cache.metaAssignmentExists = true;
55+
if (meta?.meta) {
5556
const generateAst = template(`const a = ${JSON.stringify(meta.meta)}`)() as BabelTypes.VariableDeclaration;
5657
path.node.right = generateAst.declarations[0].init;
5758
addInfoComment(path.node);
58-
pass.cache.metaAssignmentExists = true;
5959
}
6060
}
6161
}
@@ -78,13 +78,13 @@ export default function (babel: { types: typeof BabelTypes }): {
7878
if (t.isIdentifier(path.node.declaration)) {
7979
const declarationName = path.node.declaration.name;
8080
path.parentPath.traverse(injectMetaVisitor, { ...state.opts, declarationName, cache })
81-
if (!cache.pluginNameAssignmentExists) {
82-
const generatedNode = template(`${declarationName}.pluginName = "${state.opts.meta.pluginName}"`)();
81+
if (!cache.pluginNameAssignmentExists && state.opts?.meta?.pluginName) {
82+
const generatedNode = template(`${declarationName}.pluginName = "${state.opts?.meta?.pluginName}"`)();
8383
addInfoComment(generatedNode);
8484
path.insertBefore(generatedNode);
8585
}
86-
if (!cache.metaAssignmentExists) {
87-
const generatedNode = template(`${declarationName}.meta = ${JSON.stringify(state.opts.meta.meta)}`)();
86+
if (!cache.metaAssignmentExists && state.opts?.meta?.meta) {
87+
const generatedNode = template(`${declarationName}.meta = ${JSON.stringify(state.opts?.meta?.meta)}`)();
8888
addInfoComment(generatedNode);
8989
path.insertBefore(generatedNode);
9090
}

0 commit comments

Comments
 (0)