-
Notifications
You must be signed in to change notification settings - Fork 279
Expand file tree
/
Copy pathpackage-scripts.js
More file actions
109 lines (102 loc) · 5.04 KB
/
package-scripts.js
File metadata and controls
109 lines (102 loc) · 5.04 KB
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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
import { createRequire } from "module";
import path from "path";
import { fileURLToPath } from "url";
const __dirname = path.dirname(fileURLToPath(import.meta.url));
const require = createRequire(import.meta.url);
const resolve = require("resolve");
const assetParametersScript = resolve.sync("@ui5/webcomponents-base/lib/generate-asset-parameters/index.js");
const stylesScript = resolve.sync("@ui5/webcomponents-base/lib/generate-styles/index.js");
const fontFaceScript = resolve.sync("@ui5/webcomponents-base/lib/css-processors/css-processor-font-face.mjs");
const versionScript = resolve.sync("@ui5/webcomponents-base/lib/generate-version-info/index.js");
const copyUsedModules = resolve.sync("@ui5/webcomponents-tools/lib/copy-list/index.js");
const amdToES6 = resolve.sync("@ui5/webcomponents-tools/lib/amd-to-es6/index.js");
const noRequire = resolve.sync("@ui5/webcomponents-tools/lib/amd-to-es6/no-remaining-require.js");
const LIB = path.join(__dirname, `../tools/lib/`);
const viteConfig = `-c "${require.resolve("@ui5/webcomponents-tools/components-package/vite.config.js")}"`;
const scripts = {
__ui5envs: {
UI5_TS: "true",
UI5_BASE: true,
UI5_CEM_MODE: "dev",
},
clean: {
default: "ui5nps clean.generated clean.dist",
"generated": `ui5nps-script "${LIB}/rimraf/rimraf.js src/generated`,
"dist": `ui5nps-script "${LIB}/rimraf/rimraf.js dist`,
},
lint: ``,
generate: "ui5nps clean build.i18n integrate copy generateAssetParameters generateVersionInfo generateStyles generateFontFace build.jsonImports",
prepare: "ui5nps clean build.i18n integrate copy generateAssetParameters generateVersionInfo generateStyles generateFontFace typescript integrate.no-remaining-require build.jsonImports",
typescript: "tsc -b",
integrate: {
default: "ui5nps integrate.copy-used-modules integrate.amd-to-es6 integrate.third-party",
"copy-used-modules": `ui5nps-script "${copyUsedModules}" ./used-modules.txt dist/`,
"amd-to-es6": `ui5nps-script "${amdToES6}" dist/`,
"no-remaining-require": `ui5nps-script "${noRequire}" dist/`,
"third-party": {
default: "ui5nps integrate.third-party.copy integrate.third-party.fix",
copy: `ui5nps-script "${LIB}copy-and-watch/index.js" ../../node_modules/@openui5/sap.ui.core/src/sap/ui/thirdparty/caja-html-sanitizer.js dist/sap/ui/thirdparty/`,
fix: "replace-in-file 240 xA0 dist/sap/ui/thirdparty/caja-html-sanitizer.js"
},
},
build: {
default: `ui5nps prepare`,
bundle: `ui5nps-script "${LIB}/vite-bundler/vite-bundler.js" ${viteConfig}`,
i18n: {
default: "ui5nps build.i18n.defaultsjs build.i18n.json",
defaultsjs: `ui5nps-script "${LIB}/i18n/defaults.js" src/i18n src/generated/i18n`,
json: `ui5nps-script "${LIB}/i18n/toJSON.js" src/i18n dist/generated/assets/i18n`,
},
jsonImports: {
default: "ui5nps build.jsonImports.i18n",
i18n: `ui5nps-script "${LIB}/generate-json-imports/i18n.js" dist/generated/assets/i18n src/generated/json-imports`,
},
},
copy: {
default: "ui5nps copy.src",
src: `ui5nps-script "${LIB}copy-and-watch/index.js" "src/**/*.{js,css,d.ts}" dist/`,
srcWithWatch: `ui5nps-script "${LIB}copy-and-watch/index.js" "src/**/*.{js,css,d.ts}" dist/ --watch --skip-initial-copy`,
},
generateAssetParameters: `ui5nps-script "${assetParametersScript}"`,
generateVersionInfo: `ui5nps-script "${versionScript}"`,
generateStyles: `ui5nps-script "${stylesScript}"`,
generateFontFace: `ui5nps-script "${fontFaceScript}"`,
generateProd: {
"default": "ui5nps generateProd.remove-dev-mode generateProd.copy-prod",
"remove-dev-mode": `ui5nps-script "${LIB}/remove-dev-mode/remove-dev-mode.js"`,
"copy-prod": {
default: "ui5nps-p generateProd.copy-prod.ui5 generateProd.copy-prod.preact generateProd.copy-prod.assets",
"ui5": `ui5nps-script "${LIB}copy-and-watch/index.js" "dist/sap/**/*" dist/prod/sap/`,
"preact": `ui5nps-script "${LIB}copy-and-watch/index.js" "dist/thirdparty/preact/**/*.js" dist/prod/thirdparty/preact/`,
"assets": `ui5nps-script "${LIB}copy-and-watch/index.js" "dist/generated/assets/**/*.json" dist/prod/generated/assets/`,
}
},
generateAPI: {
generateCEM: `ui5nps-script "${LIB}/cem/cem.js" analyze --config "${LIB}cem/custom-elements-manifest.config.js"`,
validateCEM: `ui5nps-script "${LIB}/cem/validate.js"`,
mergeCEM: `ui5nps-script "${LIB}cem/merge.js"`,
},
watch: {
default: 'ui5nps-p watch.src watch.styles', // concurently
withBundle: 'ui5nps-p watch.src watch.bundle watch.styles', // concurently
src: 'ui5nps copy.srcWithWatch',
bundle: `ui5nps-script ${LIB}/dev-server/dev-server.js ${viteConfig}`,
styles: `ui5nps-script "${LIB}/chokidar/chokidar.js" "src/css/*.css" "ui5nps generateStyles"`
},
test: {
default: 'ui5nps-p test.ssr test.ssr2 test.test-cy-ci', // concurently
ssr: `mocha test/ssr`,
ssr2: "node -e \"import('./dist/Device.js')\"",
"test-cy-ci": {
default: "ui5nps test.test-cy-ci.cypress",
cypress: ` yarn cypress run --component --browser chrome`
},
"test-cy-open": {
default: "ui5nps test.test-cy-open.cypress",
cypress: ` yarn cypress open --component --browser chrome`
}
},
};
export default {
scripts,
};