@nx/react-native
Version:
75 lines (74 loc) • 2.77 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.createBuildTarget = createBuildTarget;
exports.createServeTarget = createServeTarget;
exports.createNxWebpackPluginOptions = createNxWebpackPluginOptions;
const devkit_1 = require("@nx/devkit");
function createBuildTarget(options) {
return {
executor: '@nx/webpack:webpack',
outputs: ['{options.outputPath}'],
defaultConfiguration: 'production',
options: {
compiler: 'babel',
outputPath: (0, devkit_1.joinPathFragments)('dist', options.projectRoot != '.' ? options.projectRoot : options.project, 'web'),
index: (0, devkit_1.joinPathFragments)(options.projectRoot, 'src/index.html'),
baseHref: '/',
main: (0, devkit_1.joinPathFragments)(options.projectRoot, `src/main-web.tsx`),
tsConfig: (0, devkit_1.joinPathFragments)(options.projectRoot, 'tsconfig.app.json'),
assets: [
(0, devkit_1.joinPathFragments)(options.projectRoot, 'src/favicon.ico'),
(0, devkit_1.joinPathFragments)(options.projectRoot, 'src/assets'),
],
webpackConfig: (0, devkit_1.joinPathFragments)(options.projectRoot, 'webpack.config.js'),
},
configurations: {
development: {
extractLicenses: false,
optimization: false,
sourceMap: true,
vendorChunk: true,
},
production: {
optimization: true,
outputHashing: 'all',
sourceMap: false,
namedChunks: false,
extractLicenses: true,
vendorChunk: false,
},
},
};
}
function createServeTarget(options) {
return {
executor: '@nx/webpack:dev-server',
defaultConfiguration: 'development',
options: {
buildTarget: `${options.project}:build`,
hmr: true,
},
configurations: {
development: {
buildTarget: `${options.project}:build:development`,
},
production: {
buildTarget: `${options.project}:build:production`,
hmr: false,
},
},
};
}
function createNxWebpackPluginOptions(options) {
return {
target: 'web',
compiler: 'babel',
outputPath: (0, devkit_1.joinPathFragments)('dist', options.projectRoot != '.' ? options.projectRoot : options.project),
index: './src/index.html',
baseHref: '/',
main: `./src/main-web.tsx`,
tsConfig: './tsconfig.app.json',
assets: ['./src/favicon.ico', './src/assets'],
styles: [],
};
}
;