@tarojs/webpack-runner
Version:
webpack runner for taro
54 lines • 1.94 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const helper_1 = require("@tarojs/helper");
const runner_utils_1 = require("@tarojs/runner-utils");
const path_1 = require("path");
const resolve_1 = require("resolve");
const Chain = require("webpack-chain");
exports.default = (appPath, config) => {
const chain = new Chain();
const mainFields = [...helper_1.defaultMainFields];
if (config.isWatch) {
mainFields.unshift('main:h5');
}
const resolveOptions = {
basedir: appPath,
packageFilter: (pkg, pkgFile) => {
for (let i = 0; i < mainFields.length; i++) {
try {
const mainFile = pkg[mainFields[i]];
if (mainFile && (0, resolve_1.sync)(path_1.default.resolve(pkgFile, mainFile))) {
pkg.main = mainFile;
break;
}
}
catch (e) { } // eslint-disable-line no-empty
}
return pkg;
},
};
chain.merge({
resolve: {
extensions: ['.mjs', '.js', '.jsx', '.ts', '.tsx', '.vue'],
mainFields,
symlinks: true,
alias: {
// Note: link 本地依赖调试,runtime 包需要指向本地 node_modules 顶层的 runtime,保证闭包值 Current 一致,shared 也一样
'@tarojs/runtime': (0, resolve_1.sync)('@tarojs/runtime', resolveOptions),
'@tarojs/shared': (0, resolve_1.sync)('@tarojs/shared', resolveOptions),
},
},
resolveLoader: {
modules: ['node_modules'],
},
});
chain.resolve.plugin('MultiPlatformPlugin').use(runner_utils_1.MultiPlatformPlugin, [
'described-resolve',
'resolve',
{
chain,
},
]);
return chain;
};
//# sourceMappingURL=base.conf.js.map