-
Notifications
You must be signed in to change notification settings - Fork 2
/
prepare.js
53 lines (43 loc) · 1.6 KB
/
prepare.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
const fs = require('fs-extra');
const { resolve } = require('path');
const { execSync } = require('child_process');
const winston = require('winston-color');
const distPath = resolve(__dirname, './dist')
const appDistPath = resolve(distPath, 'app');
const resourcesDistPath = resolve(appDistPath, 'App_Resources');
const resourcesPath = resolve(__dirname, './resources');
const pkg = require(resolve(__dirname, 'package.json'));
function copyNativeScriptPlugins() {
winston.info('Copying NativeScript plugins to template dependencies...')
;
pkg.dependencies = {
...Object.keys(pkg.dependencies)
.filter(key => key.indexOf('nativescript-') !== -1)
.reduce((obj, key) => {
obj[key] = pkg.dependencies[key];
return obj;
}, {}),
...pkg.nativescriptDependencies,
}
const buildConfig = (pkg.nativescript || {}).build
pkg.nativescript && delete pkg.nativescript.build;
delete pkg.scripts;
delete pkg.devDependencies;
delete pkg.nativescriptDependencies;
fs.writeFileSync(resolve(distPath, 'package.json'), JSON.stringify(pkg, null, 2));
fs.ensureDirSync(appDistPath);
fs.writeFileSync(resolve(appDistPath, 'package.json'), JSON.stringify({
...buildConfig
}, null, 2));
}
function updateDistFromTemplate() {
winston.info('Preparing NativeScript application from template...');
fs.ensureDirSync(resourcesDistPath);
fs.copySync(resourcesPath, resourcesDistPath, { overwrite: false });
execSync('npm i --production', { cwd: distPath });
}
module.exports = () => {
fs.ensureDirSync(distPath);
copyNativeScriptPlugins();
updateDistFromTemplate();
};