@@ -3,7 +3,7 @@ const { join, dirname, relative, resolve, sep, extname } = require('path');
33const { copySync, existsSync, mkdirpSync, ensureFileSync, writeJSONSync, readFileSync, readJSONSync } = require ( 'fs-extra' ) ;
44const { getOptions } = require ( 'loader-utils' ) ;
55const resolveModule = require ( 'resolve' ) ;
6- const { constants : { QUICKAPP } } = require ( 'miniapp-builder-shared' ) ;
6+ const { constants : { QUICKAPP , MINIAPP } , platformMap } = require ( 'miniapp-builder-shared' ) ;
77const cached = require ( './cached' ) ;
88const { removeExt, doubleBackslash, normalizeOutputFilePath, addRelativePathPrefix, isFromTargetDirs } = require ( './utils/pathHelper' ) ;
99const { isNpmModule, isJSONFile, isTypescriptFile } = require ( './utils/judgeModule' ) ;
@@ -70,6 +70,9 @@ module.exports = function scriptLoader(content) {
7070 let outputContent = { } ;
7171 let outputOption = { } ;
7272
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+
7376 outputContent = { code : rawContent } ;
7477 outputOption = {
7578 outputPath : {
@@ -87,8 +90,9 @@ module.exports = function scriptLoader(content) {
8790 platform,
8891 aliasEntries
8992 }
90- ]
91- ] ,
93+ ] ,
94+ needHackRegeneratorRuntimeFunction ? require ( './babel-plugin-handle-regeneratorRuntime' ) : null
95+ ] . filter ( t => t ) ,
9296 platform,
9397 isTypescriptFile : isTypescriptFile ( this . resourcePath ) ,
9498 rootDir,
0 commit comments