@24i/smartapps-bigscreen-rnv-build-engine 0.0.2-alpha.1315 → 0.0.2-alpha.1317
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/index.js +1 -1
- package/dist/templates/platforms/_shared/template.js +86 -0
- package/dist/templates/platforms/_shared/webpack.base.js +272 -0
- package/dist/templates/platforms/entone/webpack.config.dev.js +42 -0
- package/dist/templates/platforms/entone/webpack.config.prod.js +36 -0
- package/dist/templates/platforms/hbbtv/webpack.config.dev.js +43 -0
- package/dist/templates/platforms/hbbtv/webpack.config.prod.js +37 -0
- package/dist/templates/platforms/tizen/project/.project +24 -0
- package/dist/templates/platforms/tizen/project/.tproject +12 -0
- package/dist/templates/platforms/tizen/project/config.xml +17 -0
- package/dist/templates/platforms/tizen/webpack.config.dev.js +43 -0
- package/dist/templates/platforms/tizen/webpack.config.prod.js +36 -0
- package/dist/templates/platforms/webos/project/.project +35 -0
- package/dist/templates/platforms/webos/project/appinfo.json +12 -0
- package/dist/templates/platforms/webos/project/public/content/js/webOSTVjs-1.2.3/LICENSE-2.0.txt +202 -0
- package/dist/templates/platforms/webos/project/public/content/js/webOSTVjs-1.2.3/webOSTV.js +391 -0
- package/dist/templates/platforms/webos/webpack.config.dev.js +44 -0
- package/dist/templates/platforms/webos/webpack.config.prod.js +36 -0
- package/dist/templates/platforms/webtv/webpack.config.dev.js +42 -0
- package/dist/templates/platforms/webtv/webpack.config.prod.js +36 -0
- package/package.json +3 -3
- package/renative.engine.json +15 -0
package/dist/src/index.js
CHANGED
|
@@ -7,7 +7,7 @@ exports["default"] = void 0;
|
|
|
7
7
|
|
|
8
8
|
var _rnv = require("rnv");
|
|
9
9
|
|
|
10
|
-
var _renativeEngine = _interopRequireDefault(require("
|
|
10
|
+
var _renativeEngine = _interopRequireDefault(require("../../renative.engine.json"));
|
|
11
11
|
|
|
12
12
|
var _enginePlatforms = require("./enginePlatforms");
|
|
13
13
|
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
4
|
+
|
|
5
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
6
|
+
|
|
7
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
8
|
+
|
|
9
|
+
var DEFAULT_CONFIG = {
|
|
10
|
+
isDebug: false,
|
|
11
|
+
isTestVersion: false,
|
|
12
|
+
title: '24i SmartApps BIGScreen Template',
|
|
13
|
+
docType: '<!DOCTYPE html>',
|
|
14
|
+
htmlTag: '<html lang="en">',
|
|
15
|
+
contentType: '',
|
|
16
|
+
metaTags: {
|
|
17
|
+
viewport: 'content="width=1280"'
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
var indent = function indent(level) {
|
|
22
|
+
return ' '.repeat(level);
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
var removeBlankLines = function removeBlankLines(string) {
|
|
26
|
+
return string.replace(/^\s*\n/gm, '');
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
var constructMetaTags = function constructMetaTags(tags) {
|
|
30
|
+
if (typeof tags === 'string') return tags;
|
|
31
|
+
var metatags = Object.keys(tags).map(function (tag) {
|
|
32
|
+
return "<meta name=\"".concat(tag, "\" ").concat(tags[tag], " />");
|
|
33
|
+
});
|
|
34
|
+
metatags.push('<meta charset="utf-8" />');
|
|
35
|
+
return metatags.join("\n".concat(indent(2)));
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
var htmlTemp = function htmlTemp(options) {
|
|
39
|
+
var config = _objectSpread(_objectSpread({}, DEFAULT_CONFIG), options);
|
|
40
|
+
|
|
41
|
+
var docType = config.docType,
|
|
42
|
+
title = config.title,
|
|
43
|
+
metaTags = config.metaTags,
|
|
44
|
+
htmlTag = config.htmlTag,
|
|
45
|
+
contentType = config.contentType,
|
|
46
|
+
isDebug = config.isDebug,
|
|
47
|
+
debug = config.debug,
|
|
48
|
+
debugIp = config.debugIp,
|
|
49
|
+
platform = config.platform,
|
|
50
|
+
bodyPrepend = config.bodyPrepend,
|
|
51
|
+
bodyAppend = config.bodyAppend;
|
|
52
|
+
var isBuildHosted = options.isBuildHosted,
|
|
53
|
+
baseUrl = options.baseUrl;
|
|
54
|
+
var isBuildHostedAndHasBaseUrl = isBuildHosted && !!baseUrl;
|
|
55
|
+
var appContentPath = isBuildHostedAndHasBaseUrl ? "".concat(baseUrl, "/public/content") : 'content';
|
|
56
|
+
var titleTag = "<title>".concat(title, "</title>");
|
|
57
|
+
var noScript = '<noscript>You need to enable JavaScript to run this app.</noscript>';
|
|
58
|
+
var remoteDebugScript;
|
|
59
|
+
|
|
60
|
+
if (debug === 'true' && debugIp) {
|
|
61
|
+
remoteDebugScript = "<script src=\"http://".concat(debugIp, ":8080/target/target-script-min.js#anonymous\"></script>");
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
var tizenScripts = '';
|
|
65
|
+
|
|
66
|
+
if (platform === 'tizen') {
|
|
67
|
+
tizenScripts = '<script type="text/javascript" src="$WEBAPIS/webapis/webapis.js"></script>';
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
var webosScripts = '';
|
|
71
|
+
|
|
72
|
+
if (platform === 'webos') {
|
|
73
|
+
var webosScriptsPath = "".concat(appContentPath, "/js/webOSTVjs-1.2.3");
|
|
74
|
+
webosScripts = "<script type=\"text/javascript\" src=\"".concat(webosScriptsPath, "/webOSTV.js\"></script>");
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
var errScript = "\n <script>window.onerror = function(err) {\n var errDiv = document.getElementById('err');\n errDiv.innerHTML += err;\n }\n </script>";
|
|
78
|
+
var errDiv = '<div id="err" style="color: red; position: absolute; top: 0; left: 0; z-index: 0;"> </div>';
|
|
79
|
+
var customScripts = (config.customScripts || []).map(function (src) {
|
|
80
|
+
return "<script type=\"text/javascript\" src=\"".concat(src, "\"></script>");
|
|
81
|
+
}).join('');
|
|
82
|
+
var rootDiv = '<div id="root" class="root"></div>';
|
|
83
|
+
return removeBlankLines("\n".concat(docType, "\n").concat(htmlTag, "\n <head>\n ").concat(contentType, "\n ").concat(constructMetaTags(metaTags), "\n ").concat(titleTag, "\n ").concat(remoteDebugScript || '', "\n ").concat(isDebug ? errScript : '', "\n ").concat(tizenScripts, "\n ").concat(webosScripts, "\n </head>\n <body>\n ").concat(bodyPrepend || '', "\n ").concat(noScript, "\n ").concat(isDebug ? errDiv : '', "\n ").concat(rootDiv, "\n ").concat(bodyAppend || '', "\n ").concat(customScripts, "\n </body>\n</html>\n"));
|
|
84
|
+
};
|
|
85
|
+
|
|
86
|
+
module.exports = htmlTemp;
|
|
@@ -0,0 +1,272 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
|
4
|
+
|
|
5
|
+
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
6
|
+
|
|
7
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
8
|
+
|
|
9
|
+
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
|
10
|
+
|
|
11
|
+
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
|
12
|
+
|
|
13
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
14
|
+
|
|
15
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
16
|
+
|
|
17
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
18
|
+
|
|
19
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
20
|
+
|
|
21
|
+
var fs = require('fs');
|
|
22
|
+
|
|
23
|
+
var path = require('path');
|
|
24
|
+
|
|
25
|
+
var MiniCssExtractPlugin = require('mini-css-extract-plugin');
|
|
26
|
+
|
|
27
|
+
var FileManagerPlugin = require('filemanager-webpack-plugin');
|
|
28
|
+
|
|
29
|
+
var ForkTsCheckerWebpackPlugin = require('fork-ts-checker-webpack-plugin');
|
|
30
|
+
|
|
31
|
+
var webpack = require('webpack');
|
|
32
|
+
|
|
33
|
+
var HtmlWebpackPlugin = require('html-webpack-plugin');
|
|
34
|
+
|
|
35
|
+
var HtmlWebpackHarddiskPlugin = require('html-webpack-harddisk-plugin');
|
|
36
|
+
|
|
37
|
+
var _require = require('webpack-bundle-analyzer'),
|
|
38
|
+
BundleAnalyzerPlugin = _require.BundleAnalyzerPlugin;
|
|
39
|
+
|
|
40
|
+
var _require2 = require('@24i/smartapps-bigscreen-rnv-build-engine/dist/src/utils/resolveBuildVersion'),
|
|
41
|
+
resolveBuildVersion = _require2.resolveBuildVersion;
|
|
42
|
+
|
|
43
|
+
var _require3 = require('@24i/smartapps-bigscreen-rnv-build-engine/dist/src/utils/resolveBaseUrl'),
|
|
44
|
+
resolveBaseUrl = _require3.resolveBaseUrl;
|
|
45
|
+
|
|
46
|
+
var getAnimationType = function getAnimationType() {
|
|
47
|
+
var isAnimated = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
|
|
48
|
+
return isAnimated ? 'animated' : 'basic';
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
var generateFlavourJSExtensions = function generateFlavourJSExtensions(_ref) {
|
|
52
|
+
var height = _ref.resolution.height,
|
|
53
|
+
animated = _ref.animated,
|
|
54
|
+
extensions = _ref.extensions;
|
|
55
|
+
var flavouredExtensions = [];
|
|
56
|
+
var animationType = getAnimationType(animated);
|
|
57
|
+
extensions.forEach(function (extension) {
|
|
58
|
+
flavouredExtensions.push(".".concat(animationType, ".").concat(height, ".").concat(extension), ".".concat(height, ".").concat(extension), ".".concat(animationType, ".").concat(extension), ".".concat(extension));
|
|
59
|
+
});
|
|
60
|
+
return flavouredExtensions;
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
var generateFlavourSCSSExtensions = function generateFlavourSCSSExtensions(_ref2) {
|
|
64
|
+
var height = _ref2.resolution.height,
|
|
65
|
+
animated = _ref2.animated;
|
|
66
|
+
var animationType = getAnimationType(animated);
|
|
67
|
+
return [".".concat(animationType, ".").concat(height, ".scss"), ".".concat(animationType, ".").concat(height, ".css"), ".".concat(height, ".scss"), ".".concat(height, ".css"), ".".concat(animationType, ".scss"), ".".concat(animationType, ".css"), '.scss', '.css'];
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
var getResolutionString = function getResolutionString(_ref3) {
|
|
71
|
+
var _ref3$resolution = _ref3.resolution,
|
|
72
|
+
height = _ref3$resolution.height,
|
|
73
|
+
width = _ref3$resolution.width;
|
|
74
|
+
return height && width ? "".concat(width, "x").concat(height) : '';
|
|
75
|
+
};
|
|
76
|
+
|
|
77
|
+
var includeRtlFiles = function includeRtlFiles(_ref4) {
|
|
78
|
+
var shouldIncludeRtlFiles = _ref4.shouldIncludeRtlFiles;
|
|
79
|
+
return function (content, _ref5) {
|
|
80
|
+
var resourcePath = _ref5.resourcePath;
|
|
81
|
+
if (!shouldIncludeRtlFiles) return content;
|
|
82
|
+
var fileName = path.basename(resourcePath);
|
|
83
|
+
var filePath = path.dirname(resourcePath);
|
|
84
|
+
if (fileName.indexOf('.styles.') === -1) return content;
|
|
85
|
+
var rtlFile = path.resolve(filePath, 'rtl.scss');
|
|
86
|
+
|
|
87
|
+
if (fs.existsSync(rtlFile)) {
|
|
88
|
+
return "".concat(content, "\n@import './rtl';");
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
return content;
|
|
92
|
+
};
|
|
93
|
+
};
|
|
94
|
+
|
|
95
|
+
var getAppRuntimeConfigPath = function getAppRuntimeConfigPath() {
|
|
96
|
+
var baseUrl = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
|
|
97
|
+
var isBuildHosted = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
98
|
+
var isBuildHostedAndHasBaseUrl = isBuildHosted && !!baseUrl;
|
|
99
|
+
var relativePath = path.join(isBuildHostedAndHasBaseUrl ? './public' : '', 'content/appRuntimeConfig.json');
|
|
100
|
+
return isBuildHostedAndHasBaseUrl ? "".concat(baseUrl, "/").concat(relativePath) : relativePath;
|
|
101
|
+
};
|
|
102
|
+
|
|
103
|
+
function generateConfig(config) {
|
|
104
|
+
var projectDir = path.resolve(config.currentDir, '../../');
|
|
105
|
+
var platformBuildsDir = path.resolve(config.currentDir, '../');
|
|
106
|
+
var appBuildDir = path.resolve(config.currentDir);
|
|
107
|
+
var appBuildEngineProjectDir = path.resolve(config.currentDir, config.buildFolder);
|
|
108
|
+
var appBuildEngineProjectPublicDir = path.resolve(appBuildEngineProjectDir, 'public');
|
|
109
|
+
var platformSchemeAppIdObj = {
|
|
110
|
+
platform: config.platform,
|
|
111
|
+
scheme: config.scheme,
|
|
112
|
+
appConfigId: config.appConfigId
|
|
113
|
+
};
|
|
114
|
+
var buildVersion = resolveBuildVersion(platformSchemeAppIdObj);
|
|
115
|
+
var baseUrl = resolveBaseUrl(platformSchemeAppIdObj);
|
|
116
|
+
var devServerHost = config.devServerHost || '0.0.0.0';
|
|
117
|
+
var isDevServer = appBuildEngineProjectDir.endsWith('/server');
|
|
118
|
+
var PLATFORM = process.env.PLATFORM;
|
|
119
|
+
var isBuildHosted = config.isBuildHosted || false;
|
|
120
|
+
var modulePaths = ['src', 'node_modules'].concat(config.modulePaths);
|
|
121
|
+
var rules = {};
|
|
122
|
+
rules.babel = {
|
|
123
|
+
test: /\.[tj]sx?$/,
|
|
124
|
+
include: modulePaths.map(function (v) {
|
|
125
|
+
return path.resolve(projectDir, v);
|
|
126
|
+
}),
|
|
127
|
+
use: [{
|
|
128
|
+
loader: 'ts-loader',
|
|
129
|
+
options: {
|
|
130
|
+
transpileOnly: true,
|
|
131
|
+
allowTsInNodeModules: true
|
|
132
|
+
}
|
|
133
|
+
}]
|
|
134
|
+
};
|
|
135
|
+
rules.css = {
|
|
136
|
+
test: /\.s?css$/,
|
|
137
|
+
use: [isDevServer ? 'css-hot-loader' : null, MiniCssExtractPlugin.loader, 'css-loader', {
|
|
138
|
+
loader: 'sass-loader',
|
|
139
|
+
options: {
|
|
140
|
+
sourceMap: false,
|
|
141
|
+
additionalData: includeRtlFiles(config)
|
|
142
|
+
}
|
|
143
|
+
}].filter(Boolean)
|
|
144
|
+
};
|
|
145
|
+
rules.image = {
|
|
146
|
+
test: /\.(gif|jpe?g|png|svg)$/,
|
|
147
|
+
use: {
|
|
148
|
+
loader: 'file-loader',
|
|
149
|
+
options: {
|
|
150
|
+
outputPath: 'content/assets/',
|
|
151
|
+
publicPath: '../assets/'
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
};
|
|
155
|
+
rules.fonts = {
|
|
156
|
+
test: /\.(woff|woff2|eot|ttf|otf)(\?[\s\S]+)?$/,
|
|
157
|
+
use: {
|
|
158
|
+
loader: 'file-loader',
|
|
159
|
+
options: {
|
|
160
|
+
outputPath: 'content/fonts',
|
|
161
|
+
publicPath: '../fonts/'
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
};
|
|
165
|
+
rules.sourcemap = {
|
|
166
|
+
test: /\.[tj]sx$/,
|
|
167
|
+
use: ['source-map-loader'],
|
|
168
|
+
enforce: 'pre',
|
|
169
|
+
exclude: [/node_modules/, /build/, /__test__/, /__tests__/]
|
|
170
|
+
};
|
|
171
|
+
var aliases = {
|
|
172
|
+
'@24i/smartapps-bigscreen-device': config.environment === 'production' ? '@24i/smartapps-bigscreen-device' : '@24i/smartapps-bigscreen-device/resolver'
|
|
173
|
+
};
|
|
174
|
+
|
|
175
|
+
if (config.moduleAliases) {
|
|
176
|
+
Object.keys(config.moduleAliases).forEach(function (key) {
|
|
177
|
+
if (typeof config.moduleAliases[key] === 'string') {
|
|
178
|
+
aliases[key] = config.moduleAliases[key];
|
|
179
|
+
} else {
|
|
180
|
+
aliases[key] = path.resolve(projectDir, config.moduleAliases[key].projectPath);
|
|
181
|
+
}
|
|
182
|
+
});
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
var plugins = {};
|
|
186
|
+
plugins.forkTsChecker = new ForkTsCheckerWebpackPlugin({
|
|
187
|
+
typescript: {
|
|
188
|
+
enabled: true,
|
|
189
|
+
memoryLimit: 4096
|
|
190
|
+
}
|
|
191
|
+
});
|
|
192
|
+
plugins.webpack = new webpack.DefinePlugin({
|
|
193
|
+
WEBPACK_INJECTION_APP_CONFIG_ID: JSON.stringify(config.appConfigId || ''),
|
|
194
|
+
WEBPACK_INJECTION_APP_CREATED: JSON.stringify(new Date().toISOString()),
|
|
195
|
+
WEBPACK_INJECTION_APP_RESOLUTION: JSON.stringify(getResolutionString(config)),
|
|
196
|
+
WEBPACK_INJECTION_APP_VERSION: JSON.stringify(buildVersion || ''),
|
|
197
|
+
WEBPACK_INJECTION_APP_ENVIRONMENT: JSON.stringify(config.environment || ''),
|
|
198
|
+
WEBPACK_INJECTION_APP_PLATFORM: JSON.stringify(PLATFORM || ''),
|
|
199
|
+
WEBPACK_INJECTION_APP_RUNTIME_CONFIG_PATH: JSON.stringify(getAppRuntimeConfigPath(baseUrl, isBuildHosted))
|
|
200
|
+
});
|
|
201
|
+
plugins.html = new HtmlWebpackPlugin({
|
|
202
|
+
alwaysWriteToDisk: true,
|
|
203
|
+
filename: path.resolve(appBuildEngineProjectPublicDir, './index.html'),
|
|
204
|
+
template: path.resolve(appBuildDir, './template.js'),
|
|
205
|
+
minify: false,
|
|
206
|
+
templateParameters: _objectSpread(_objectSpread({}, config), {}, {
|
|
207
|
+
debug: process.env.DEBUG,
|
|
208
|
+
debugIp: process.env.DEBUG_IP,
|
|
209
|
+
platform: PLATFORM,
|
|
210
|
+
environment: config.environment,
|
|
211
|
+
baseUrl: baseUrl
|
|
212
|
+
}),
|
|
213
|
+
xhtml: PLATFORM === 'hbbtv'
|
|
214
|
+
});
|
|
215
|
+
plugins.harddisk = new HtmlWebpackHarddiskPlugin();
|
|
216
|
+
plugins.analyzer = new BundleAnalyzerPlugin();
|
|
217
|
+
plugins.css = new MiniCssExtractPlugin({
|
|
218
|
+
filename: 'content/css/[name].css'
|
|
219
|
+
});
|
|
220
|
+
var copiedDirWithPublicContentPath = path.join(appBuildDir, "../".concat(path.parse(appBuildDir).name, "-public"));
|
|
221
|
+
plugins.fileManager = new FileManagerPlugin({
|
|
222
|
+
events: {
|
|
223
|
+
onStart: [{
|
|
224
|
+
"delete": [copiedDirWithPublicContentPath // remove copied folder if exists from any previous builds
|
|
225
|
+
]
|
|
226
|
+
}],
|
|
227
|
+
onEnd: [isDevServer ? {
|
|
228
|
+
move: [{
|
|
229
|
+
source: path.join(appBuildDir, 'project', 'public', 'content', 'appRuntimeConfig.json'),
|
|
230
|
+
destination: path.join(appBuildEngineProjectPublicDir, 'content', 'appRuntimeConfig.json')
|
|
231
|
+
}]
|
|
232
|
+
} : null, isBuildHosted ? {
|
|
233
|
+
copy: [{
|
|
234
|
+
// copy build dir content to upload files later
|
|
235
|
+
source: appBuildEngineProjectPublicDir,
|
|
236
|
+
destination: path.join(copiedDirWithPublicContentPath, 'project', 'public')
|
|
237
|
+
}],
|
|
238
|
+
"delete": [// delete content to not include it into build package
|
|
239
|
+
path.join(appBuildEngineProjectPublicDir, 'content')]
|
|
240
|
+
} : null].filter(Boolean)
|
|
241
|
+
}
|
|
242
|
+
});
|
|
243
|
+
var extensions = [].concat(_toConsumableArray(generateFlavourJSExtensions(config)), _toConsumableArray(generateFlavourSCSSExtensions(config)));
|
|
244
|
+
var output = {
|
|
245
|
+
filename: 'content/js/[name].js',
|
|
246
|
+
publicPath: isBuildHosted ? "".concat(baseUrl, "/public") : '',
|
|
247
|
+
path: appBuildEngineProjectPublicDir
|
|
248
|
+
};
|
|
249
|
+
var devServer = {
|
|
250
|
+
host: devServerHost
|
|
251
|
+
};
|
|
252
|
+
var entry = {
|
|
253
|
+
polyfill: path.resolve(projectDir, 'polyfill/index.ts'),
|
|
254
|
+
bundle: path.resolve(projectDir, "".concat(config.entryFile, ".js"))
|
|
255
|
+
};
|
|
256
|
+
return {
|
|
257
|
+
Rules: rules,
|
|
258
|
+
Plugins: plugins,
|
|
259
|
+
extensions: extensions,
|
|
260
|
+
aliases: aliases,
|
|
261
|
+
entry: entry,
|
|
262
|
+
devServer: devServer,
|
|
263
|
+
output: output,
|
|
264
|
+
projectDir: projectDir,
|
|
265
|
+
platformBuildsDir: platformBuildsDir,
|
|
266
|
+
appBuildDir: appBuildDir
|
|
267
|
+
};
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
module.exports = {
|
|
271
|
+
generateConfig: generateConfig
|
|
272
|
+
};
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
4
|
+
|
|
5
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
6
|
+
|
|
7
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
8
|
+
|
|
9
|
+
var Configs = require('./webpack.base.js');
|
|
10
|
+
|
|
11
|
+
var Extend = require('./webpack.extend.js');
|
|
12
|
+
|
|
13
|
+
var config = _objectSpread({
|
|
14
|
+
currentDir: __dirname,
|
|
15
|
+
metaTags: {
|
|
16
|
+
viewport: "content=\"width=".concat(Extend.resolution.width, ", user-scalable=no\"")
|
|
17
|
+
},
|
|
18
|
+
environment: 'development',
|
|
19
|
+
customScripts: [],
|
|
20
|
+
devServerHost: '0.0.0.0'
|
|
21
|
+
}, Extend);
|
|
22
|
+
|
|
23
|
+
var C = Configs.generateConfig(config);
|
|
24
|
+
var plugins = [C.Plugins.forkTsChecker, C.Plugins.webpack, C.Plugins.html, C.Plugins.harddisk, C.Plugins.css, C.Plugins.fileManager];
|
|
25
|
+
if (config.analyzer) plugins.push(C.Plugins.analyzer);
|
|
26
|
+
module.exports = _objectSpread({
|
|
27
|
+
entry: C.entry,
|
|
28
|
+
devServer: C.devServer,
|
|
29
|
+
output: C.output,
|
|
30
|
+
optimization: {
|
|
31
|
+
minimize: false
|
|
32
|
+
},
|
|
33
|
+
module: {
|
|
34
|
+
rules: [C.Rules.babel, C.Rules.css, C.Rules.image, C.Rules.fonts, C.Rules.sourcemap].filter(Boolean)
|
|
35
|
+
},
|
|
36
|
+
plugins: plugins.filter(Boolean),
|
|
37
|
+
resolve: {
|
|
38
|
+
symlinks: false,
|
|
39
|
+
extensions: C.extensions,
|
|
40
|
+
alias: C.aliases
|
|
41
|
+
}
|
|
42
|
+
}, config.extend || {});
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
4
|
+
|
|
5
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
6
|
+
|
|
7
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
8
|
+
|
|
9
|
+
var Configs = require('./webpack.base.js');
|
|
10
|
+
|
|
11
|
+
var Extend = require('./webpack.extend.js');
|
|
12
|
+
|
|
13
|
+
var config = _objectSpread({
|
|
14
|
+
currentDir: __dirname,
|
|
15
|
+
metaTags: {
|
|
16
|
+
viewport: "content=\"width=".concat(Extend.resolution.width, ", user-scalable=no\"")
|
|
17
|
+
},
|
|
18
|
+
environment: 'production'
|
|
19
|
+
}, Extend);
|
|
20
|
+
|
|
21
|
+
var C = Configs.generateConfig(config);
|
|
22
|
+
var plugins = [C.Plugins.forkTsChecker, C.Plugins.webpack, C.Plugins.html, C.Plugins.harddisk, C.Plugins.css, C.Plugins.fileManager];
|
|
23
|
+
if (config.analyzer) plugins.push(C.Plugins.analyzer);
|
|
24
|
+
module.exports = _objectSpread({
|
|
25
|
+
entry: C.entry,
|
|
26
|
+
output: C.output,
|
|
27
|
+
module: {
|
|
28
|
+
rules: [C.Rules.babel, C.Rules.css, C.Rules.image, C.Rules.fonts, C.Rules.sourcemap].filter(Boolean)
|
|
29
|
+
},
|
|
30
|
+
plugins: plugins.filter(Boolean),
|
|
31
|
+
resolve: {
|
|
32
|
+
symlinks: false,
|
|
33
|
+
extensions: C.extensions,
|
|
34
|
+
alias: C.aliases
|
|
35
|
+
}
|
|
36
|
+
}, config.extend || {});
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
4
|
+
|
|
5
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
6
|
+
|
|
7
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
8
|
+
|
|
9
|
+
var Configs = require('./webpack.base.js');
|
|
10
|
+
|
|
11
|
+
var Extend = require('./webpack.extend.js');
|
|
12
|
+
|
|
13
|
+
var config = _objectSpread({
|
|
14
|
+
currentDir: __dirname,
|
|
15
|
+
docType: "\n<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<!DOCTYPE html PUBLIC \"-//HbbTV//1.1.1//EN\" \"http://www.hbbtv.org/dtd/HbbTV-1.1.1.dtd\">\n ",
|
|
16
|
+
htmlTag: '<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">',
|
|
17
|
+
metaTags: "\n <meta http-equiv=\"content-type\" content=\"application/vnd.hbbtv.xhtml+xml\" charset=\"UTF-8\" />\n <meta http-equiv=\"cache-control\" content=\"max-age=0\" />\n <meta http-equiv=\"cache-control\" content=\"no-cache\" />\n <meta http-equiv=\"expires\" content=\"0\" />\n <meta http-equiv=\"expires\" content=\"Tue, 01 Jan 1980 1:00:00 GMT\" />\n <meta http-equiv=\"pragma\" content=\"no-cache\" />\n ",
|
|
18
|
+
environment: 'development',
|
|
19
|
+
customScripts: [],
|
|
20
|
+
devServerHost: '0.0.0.0',
|
|
21
|
+
bodyPrepend: "\n <object id=\"oipfCap\" type=\"application/oipfCapabilities\" style=\"position: absolute; left: 0; top: 0; width: 0; height: 0;\"></object>\n <object id=\"oipfAppMan\" type=\"application/oipfApplicationManager\" style=\"position: absolute; left: 0; top: 0; width: 0; height: 0;\"></object>\n <object id=\"oipfConfig\" type=\"application/oipfConfiguration\" style=\"position: absolute; left: 0; top: 0; width: 0; height: 0;\"></object>\n "
|
|
22
|
+
}, Extend);
|
|
23
|
+
|
|
24
|
+
var C = Configs.generateConfig(config);
|
|
25
|
+
var plugins = [C.Plugins.forkTsChecker, C.Plugins.webpack, C.Plugins.html, C.Plugins.harddisk, C.Plugins.css, C.Plugins.fileManager];
|
|
26
|
+
if (config.analyzer) plugins.push(C.Plugins.analyzer);
|
|
27
|
+
module.exports = _objectSpread({
|
|
28
|
+
entry: C.entry,
|
|
29
|
+
devServer: C.devServer,
|
|
30
|
+
output: C.output,
|
|
31
|
+
optimization: {
|
|
32
|
+
minimize: false
|
|
33
|
+
},
|
|
34
|
+
module: {
|
|
35
|
+
rules: [C.Rules.babel, C.Rules.css, C.Rules.image, C.Rules.fonts, C.Rules.sourcemap].filter(Boolean)
|
|
36
|
+
},
|
|
37
|
+
plugins: plugins.filter(Boolean),
|
|
38
|
+
resolve: {
|
|
39
|
+
symlinks: false,
|
|
40
|
+
extensions: C.extensions,
|
|
41
|
+
alias: C.aliases
|
|
42
|
+
}
|
|
43
|
+
}, config.extend || {});
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
4
|
+
|
|
5
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
6
|
+
|
|
7
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
8
|
+
|
|
9
|
+
var Configs = require('./webpack.base.js');
|
|
10
|
+
|
|
11
|
+
var Extend = require('./webpack.extend.js');
|
|
12
|
+
|
|
13
|
+
var config = _objectSpread({
|
|
14
|
+
currentDir: __dirname,
|
|
15
|
+
docType: "\n<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<!DOCTYPE html PUBLIC \"-//HbbTV//1.1.1//EN\" \"http://www.hbbtv.org/dtd/HbbTV-1.1.1.dtd\">\n ",
|
|
16
|
+
htmlTag: '<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">',
|
|
17
|
+
metaTags: "\n <meta http-equiv=\"content-type\" content=\"application/vnd.hbbtv.xhtml+xml\" charset=\"UTF-8\" />\n <meta http-equiv=\"cache-control\" content=\"max-age=0\" />\n <meta http-equiv=\"cache-control\" content=\"no-cache\" />\n <meta http-equiv=\"expires\" content=\"0\" />\n <meta http-equiv=\"expires\" content=\"Tue, 01 Jan 1980 1:00:00 GMT\" />\n <meta http-equiv=\"pragma\" content=\"no-cache\" />\n ",
|
|
18
|
+
environment: 'production',
|
|
19
|
+
bodyPrepend: "\n <object id=\"oipfCap\" type=\"application/oipfCapabilities\" style=\"position: absolute; left: 0; top: 0; width: 0; height: 0;\"></object>\n <object id=\"oipfAppMan\" type=\"application/oipfApplicationManager\" style=\"position: absolute; left: 0; top: 0; width: 0; height: 0;\"></object>\n <object id=\"oipfConfig\" type=\"application/oipfConfiguration\" style=\"position: absolute; left: 0; top: 0; width: 0; height: 0;\"></object>\n "
|
|
20
|
+
}, Extend);
|
|
21
|
+
|
|
22
|
+
var C = Configs.generateConfig(config);
|
|
23
|
+
var plugins = [C.Plugins.forkTsChecker, C.Plugins.webpack, C.Plugins.html, C.Plugins.harddisk, C.Plugins.css, C.Plugins.fileManager];
|
|
24
|
+
if (config.analyzer) plugins.push(C.Plugins.analyzer);
|
|
25
|
+
module.exports = _objectSpread({
|
|
26
|
+
entry: C.entry,
|
|
27
|
+
output: C.output,
|
|
28
|
+
module: {
|
|
29
|
+
rules: [C.Rules.babel, C.Rules.css, C.Rules.image, C.Rules.fonts, C.Rules.sourcemap].filter(Boolean)
|
|
30
|
+
},
|
|
31
|
+
plugins: plugins.filter(Boolean),
|
|
32
|
+
resolve: {
|
|
33
|
+
symlinks: false,
|
|
34
|
+
extensions: C.extensions,
|
|
35
|
+
alias: C.aliases
|
|
36
|
+
}
|
|
37
|
+
}, config.extend || {});
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<projectDescription>
|
|
3
|
+
<name>{{configProps.appName}}</name>
|
|
4
|
+
<comment></comment>
|
|
5
|
+
<projects>
|
|
6
|
+
</projects>
|
|
7
|
+
<buildSpec>
|
|
8
|
+
<buildCommand>
|
|
9
|
+
<name>json.validation.builder</name>
|
|
10
|
+
<arguments>
|
|
11
|
+
</arguments>
|
|
12
|
+
</buildCommand>
|
|
13
|
+
<buildCommand>
|
|
14
|
+
<name>org.tizen.web.project.builder.WebBuilder</name>
|
|
15
|
+
<arguments>
|
|
16
|
+
</arguments>
|
|
17
|
+
</buildCommand>
|
|
18
|
+
</buildSpec>
|
|
19
|
+
<natures>
|
|
20
|
+
<nature>json.validation.nature</nature>
|
|
21
|
+
<nature>org.eclipse.wst.jsdt.core.jsNature</nature>
|
|
22
|
+
<nature>org.tizen.web.project.builder.WebNature</nature>
|
|
23
|
+
</natures>
|
|
24
|
+
</projectDescription>
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
|
2
|
+
<tproject xmlns="http://www.tizen.org/tproject">
|
|
3
|
+
<platforms>
|
|
4
|
+
<platform>
|
|
5
|
+
<name>tv-samsung-4.0</name>
|
|
6
|
+
</platform>
|
|
7
|
+
</platforms>
|
|
8
|
+
<package>
|
|
9
|
+
<blacklist/>
|
|
10
|
+
<resFallback autoGen="true"/>
|
|
11
|
+
</package>
|
|
12
|
+
</tproject>
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<widget xmlns="http://www.w3.org/ns/widgets" xmlns:tizen="http://tizen.org/ns/widgets" id="https://24i.com/apps/smartapps/bigscreen/{{configProps.id}}" version="{{APP_VERSION}}" viewmodes="maximized">
|
|
3
|
+
<tizen:application id="{{configProps.id}}" package="{{configProps.package}}" required_version="2.3"/>
|
|
4
|
+
<name>{{configProps.appName}}</name>
|
|
5
|
+
<content src="public/index.html"/>
|
|
6
|
+
<icon src="app_icon_512x512.png"/>
|
|
7
|
+
<access origin="*" subdomains="true"></access>
|
|
8
|
+
<feature name="http://tizen.org/feature/screen.size.normal.{{configProps.webpackConfig.resolution.width}}.{{configProps.webpackConfig.resolution.height}}"/>
|
|
9
|
+
<feature name="http://tizen.org/feature/network.internet"/>
|
|
10
|
+
<feature name="http://tizen.org/api/tizen" required="true"/>
|
|
11
|
+
<tizen:profile name="tv-samsung"/>
|
|
12
|
+
<tizen:privilege name="http://developer.samsung.com/privilege/network.public"/>
|
|
13
|
+
<tizen:privilege name="http://developer.samsung.com/privilege/productinfo"/>
|
|
14
|
+
<tizen:privilege name="http://tizen.org/privilege/internet"/>
|
|
15
|
+
<tizen:privilege name="http://tizen.org/privilege/tv.inputdevice"/>
|
|
16
|
+
<tizen:setting screen-orientation="landscape" context-menu="enable" background-support="disable" encryption="disable" install-location="auto" hwkey-event="enable"/>
|
|
17
|
+
</widget>
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
4
|
+
|
|
5
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
6
|
+
|
|
7
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
8
|
+
|
|
9
|
+
var Configs = require('./webpack.base.js');
|
|
10
|
+
|
|
11
|
+
var Extend = require('./webpack.extend.js');
|
|
12
|
+
|
|
13
|
+
var config = _objectSpread({
|
|
14
|
+
currentDir: __dirname,
|
|
15
|
+
metaTags: {
|
|
16
|
+
viewport: "content=\"width=".concat(Extend.resolution.width, ", user-scalable=no\"")
|
|
17
|
+
},
|
|
18
|
+
environment: 'development',
|
|
19
|
+
customScripts: [],
|
|
20
|
+
devServerHost: '0.0.0.0',
|
|
21
|
+
enableHotReload: true
|
|
22
|
+
}, Extend);
|
|
23
|
+
|
|
24
|
+
var C = Configs.generateConfig(config);
|
|
25
|
+
var plugins = [C.Plugins.forkTsChecker, C.Plugins.webpack, C.Plugins.html, C.Plugins.harddisk, C.Plugins.css, C.Plugins.fileManager];
|
|
26
|
+
if (config.analyzer) plugins.push(C.Plugins.analyzer);
|
|
27
|
+
module.exports = _objectSpread({
|
|
28
|
+
entry: C.entry,
|
|
29
|
+
devServer: C.devServer,
|
|
30
|
+
output: C.output,
|
|
31
|
+
optimization: {
|
|
32
|
+
minimize: false
|
|
33
|
+
},
|
|
34
|
+
module: {
|
|
35
|
+
rules: [C.Rules.babel, C.Rules.css, C.Rules.image, C.Rules.fonts, C.Rules.sourcemap].filter(Boolean)
|
|
36
|
+
},
|
|
37
|
+
plugins: plugins.filter(Boolean),
|
|
38
|
+
resolve: {
|
|
39
|
+
symlinks: false,
|
|
40
|
+
extensions: C.extensions,
|
|
41
|
+
alias: C.aliases
|
|
42
|
+
}
|
|
43
|
+
}, config.extend || {});
|