@@ -3,7 +3,7 @@ const { join, dirname, relative, resolve, sep, extname } = require('path');
3
3
const { copySync, existsSync, mkdirpSync, ensureFileSync, writeJSONSync, readFileSync, readJSONSync } = require ( 'fs-extra' ) ;
4
4
const { getOptions } = require ( 'loader-utils' ) ;
5
5
const resolveModule = require ( 'resolve' ) ;
6
- const { constants : { QUICKAPP } } = require ( 'miniapp-builder-shared' ) ;
6
+ const { constants : { QUICKAPP , MINIAPP } , platformMap } = require ( 'miniapp-builder-shared' ) ;
7
7
const cached = require ( './cached' ) ;
8
8
const { removeExt, doubleBackslash, normalizeOutputFilePath, addRelativePathPrefix, isFromTargetDirs } = require ( './utils/pathHelper' ) ;
9
9
const { isNpmModule, isJSONFile, isTypescriptFile } = require ( './utils/judgeModule' ) ;
@@ -70,6 +70,9 @@ module.exports = function scriptLoader(content) {
70
70
let outputContent = { } ;
71
71
let outputOption = { } ;
72
72
73
+ // 支付宝小程序 copyNpm 模式下对 @babel/runtime/regenerator/index.js 中的 `Function("r", "regeneratorRuntime=r")(runtime);` 进行处理
74
+ const needHackRegeneratorRuntimeFunction = platform . type === platformMap [ MINIAPP ] . type && ! disableCopyNpm && this . resourcePath . indexOf ( '@babel/runtime/regenerator/index.js' ) > - 1 ;
75
+
73
76
outputContent = { code : rawContent } ;
74
77
outputOption = {
75
78
outputPath : {
@@ -87,8 +90,9 @@ module.exports = function scriptLoader(content) {
87
90
platform,
88
91
aliasEntries
89
92
}
90
- ]
91
- ] ,
93
+ ] ,
94
+ needHackRegeneratorRuntimeFunction ? require ( './babel-plugin-handle-regeneratorRuntime' ) : null
95
+ ] . filter ( t => t ) ,
92
96
platform,
93
97
isTypescriptFile : isTypescriptFile ( this . resourcePath ) ,
94
98
rootDir,
0 commit comments