UNPKG

electron-webpack

Version:

> Because setting up `webpack` in the `electron` environment shouldn't be difficult.

94 lines (73 loc) 3.31 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.configureTypescript = configureTypescript; function _bluebirdLst() { const data = require("bluebird-lst"); _bluebirdLst = function () { return data; }; return data; } var path = _interopRequireWildcard(require("path")); function _util() { const data = require("../util"); _util = function () { return data; }; return data; } function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } } function configureTypescript(_x) { return _configureTypescript.apply(this, arguments); } function _configureTypescript() { _configureTypescript = (0, _bluebirdLst().coroutine)(function* (configurator) { const hasTsChecker = configurator.hasDevDependency("fork-ts-checker-webpack-plugin") || configurator.hasDevDependency("electron-webpack-ts"); if (!(hasTsChecker || configurator.hasDevDependency("ts-loader"))) { return; } // add after js configurator.extensions.splice(1, 0, ".ts", ".tsx"); const isTranspileOnly = configurator.isTest || hasTsChecker && !configurator.isProduction; const tsConfigFile = yield (0, _util().getFirstExistingFile)([path.join(configurator.sourceDir, "tsconfig.json"), path.join(configurator.projectDir, "tsconfig.json")], null); // check to produce clear error message if no tsconfig.json if (tsConfigFile == null) { throw new Error(`Please create tsconfig.json in the "${configurator.projectDir}":\n\n{\n "extends": "./node_modules/electron-webpack/tsconfig-base.json"\n}\n\n`); } if (configurator.debug.enabled) { configurator.debug(`Using ${tsConfigFile}`); } // no sense to use fork-ts-checker-webpack-plugin for production build if (isTranspileOnly && !configurator.isTest) { const ForkTsCheckerWebpackPlugin = require("fork-ts-checker-webpack-plugin"); configurator.plugins.push(new ForkTsCheckerWebpackPlugin({ tsconfig: tsConfigFile, logger: configurator.env.forkTsCheckerLogger || { info: () => {// ignore }, warn: console.warn.bind(console), error: console.error.bind(console) } })); } const tsLoaderOptions = { // use transpileOnly mode to speed-up compilation // in the test mode also, because checked during dev or production build transpileOnly: isTranspileOnly, appendTsSuffixTo: [/\.vue$/], configFile: tsConfigFile }; if (configurator.debug.enabled) { configurator.debug(`ts-loader options: ${JSON.stringify(tsLoaderOptions, null, 2)}`); } configurator.rules.push({ test: /\.tsx?$/, exclude: /node_modules/, use: [{ loader: "ts-loader", options: tsLoaderOptions }] }); }); return _configureTypescript.apply(this, arguments); } // __ts-babel@6.0.4 //# sourceMappingURL=ts.js.map