UNPKG

@omnia/tooling-vue

Version:

Used to bundle and serve manifests web component that build on Vue framework.

234 lines (233 loc) • 9.98 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.cacheKeys = exports.buildContext = exports.convertManifestPathToEntryPath = exports.getBaseWebpackConfigForManifestMetadata = void 0; const tslib_1 = require("tslib"); const globby = tslib_1.__importStar(require("globby")); const $ = tslib_1.__importStar(require("./variables")); const ts_loader_1 = tslib_1.__importDefault(require("./webpack-loaders/ts-loader")); const tsx_loader_1 = tslib_1.__importDefault(require("./webpack-loaders/tsx-loader")); function getBaseWebpackConfigForManifestMetadata(entry, bundleOutputDir, wcDomProps, enableTreeShaking = false) { return { devtool: false, mode: 'development', context: $.tooling.utils.root(""), entry: entry, //cache: { // type: "filesystem" //}, //performance: { // hints: 'error', // maxEntrypointSize: 10000000, // maxAssetSize: 10000000 // ~ 10Mb //}, //stats: 'errors-only', //stats: { // //all: false, // ////modules: true, // //maxModules: 0, // //errors: true, // warnings: false, // //moduleTrace: true, // //errorDetails: true //}, //ignoreWarnings: [ // { // module: /DEP_WEBPACK_MODULE_ID/ // A RegExp // }, // { // module: /[DEP_WEBPACK_COMPILATION_OPTIMIZE_CHUNK_ASSETS]/ // A RegExp // }, // (warning) => { console.log('marning', warning); return true;} //], optimization: Object.assign({ removeAvailableModules: false, removeEmptyChunks: false, splitChunks: false, }), resolve: { modules: $.tooling.core.getWebpackResolveModules(), extensions: ['.ts', '.tsx', '.js', '.jsx'], //extensions: ['.js', '.jsx', '.ts', '.tsx', '.html', '.vue', '.less', '.styl'], symlinks: false, cacheWithContext: true, descriptionFiles: ['package.json'], alias: Object.assign({}, $.tooling.core.getWebpackResolveAlias(), { 'tiptap$': 'tiptap/dist/tiptap.esm.js', 'tiptap-utils$': 'tiptap-utils/dist/utils.esm.js', 'tiptap-extensions$': 'tiptap-extensions/dist/extensions.esm.js', 'tiptap-commands$': 'tiptap-commands/dist/commands.esm.js', //'prosemirror-model$': $.path.resolve($.tooling.utils.root(""), 'node_modules/prosemirror-model/dist/index.es.js'), //'rope-sequence$': 'rope-sequence/dist/index.js', //'tiptap$': 'tiptap/dist/tiptap.esm.js', //'tiptap$': 'tiptap/dist/tiptap.esm.js', //'tiptap$': 'tiptap/dist/tiptap.esm.js', //'tiptap$': 'tiptap/dist/tiptap.esm.js', 'axios$': 'axios/dist/axios.js', 'typestyle$': 'typestyle/lib.es2015/index.js', 'vue$': 'vue/dist/vue.esm.js', 'rope-sequence$': 'rope-sequence/dist/index.js', 'w3c-keyname$': $.path.resolve($.tooling.utils.root(""), 'node_modules/w3c-keyname/index.es.js'), 'orderedmap$': 'orderedmap/index.js', '@microsoft/signalr': '@microsoft/signalr/dist/webworker/signalr.js', "vue-tsx-support/enable-check": $.isExtensionEnv ? $.path.resolve($.tooling.utils.root(""), "node_modules/@omnia/tooling-vue/internal-do-not-import-from-here/tasks/materials//dummy-vue-tsx-support-enable-check.js") : $.path.resolve($.tooling.utils.root(""), "client/tooling/vue/tasks/materials/dummy-vue-tsx-support-enable-check.js") //'w3c-keyname$': 'w3c-keyname/index.es.js', //'orderedmap$': 'orderedmap/index.js' }), //mainFields: ['main', 'browser', 'module'] }, output: { pathinfo: false, path: $.tooling.utils.root(bundleOutputDir), filename: '[name].js' }, externals: [ function ({ context, request }, callback) { if (request.indexOf("node_modules") > -1 || (/\.(sass|scss|styl|less|css)$/i).test(request)) { return callback(null, 'commonjs ' + request); } callback(); } ], //optimization: { // removeAvailableModules: false, // removeEmptyChunks: false, // splitChunks: false, //}, module: { noParse: /wwwroot(.*)/, rules: [ //{ // parser: { // amd: false, // harmony: false // } //}, { test: /\.m?js$/, resolve: { fullySpecified: false, // disable the behaviour }, }, ...(0, ts_loader_1.default)(enableTreeShaking), ...(0, tsx_loader_1.default)(enableTreeShaking, wcDomProps), { test: /\.jsx$/, exclude: /(node_modules|bower_components)/, use: [ //{ // loader: 'cache-loader' //}, { loader: 'babel-loader', options: { cacheDirectory: true, //presets: ["@babel/preset-env"], //presets: [["@babel/preset-env", { // "targets": { // "chrome": "59" // } //}]], plugins: ["syntax-jsx", "jsx-v-model", "transform-vue-jsx"] } } ] }, //{ // test: /\.vue$/, // use: [ // { // loader: 'vue-loader', // options: { // hotReload: false, // loaders: { // ts: 'ts-loader', // sass: 'vue-style-loader!css-loader!sass-loader!less-loader', // <style lang="scss"> // } // } // } // ] //}, { test: /\.styl$/, use: [ //'style-loader', //'css-loader', 'stylus-loader' ] }, ...($.isExtensionEnv ? [] : [{ test: /\.s(c|a)ss$/, use: [ { loader: 'sass-loader', options: { implementation: require('sass'), sassOptions: { //fiber: require('fibers'), indentedSyntax: true } //fiber: require('fibers') } } ] }]), { test: /\.less$/, use: [ //'style-loader', //'css-loader', 'less-loader' ] }, { test: /\.css$/, use: [ //'style-loader', { loader: 'css-loader' } ] }, { test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/, loader: 'url-loader' }, { test: /\.(ico|gif|png|jpe?g|svg)$/i, use: [{ loader: 'file-loader', options: { name: '[name].[ext]', outputPath: "../images/", publicPath: '/omnia/images/' } }] //loader: 'url-loader' } ] } }; } exports.getBaseWebpackConfigForManifestMetadata = getBaseWebpackConfigForManifestMetadata; function convertManifestPathToEntryPath(pathToManifest, pathsInManifest) { if (!pathsInManifest) return []; let pathsToSearch = []; pathsInManifest.forEach(p => { pathsToSearch.push((p[0] === '!' ? '!./' : './') + (p.indexOf("./") > -1 || p.indexOf(".\\") > -1 ? $.path.join(pathToManifest.substring(0, pathToManifest.lastIndexOf('/')), p.replace(/^!/, '')).replace(/\\/g, "/") : p.replace(/^!/, '').replace(/\\/g, "/"))); }); let result = globby.sync(pathsToSearch.concat(["!./**/*.manifest.+(js|ts)"])); if (!result || result.length === 0) { throw new Error("Path: " + pathsInManifest.join(', ') + " in manifest: " + pathToManifest + " resolved as " + result + " which was not found"); } return result; } exports.convertManifestPathToEntryPath = convertManifestPathToEntryPath; exports.buildContext = { isManifestsChanged: false }; exports.cacheKeys = { //buildManifestMetadatas: "buildManifestMetadatas", bundleManifests: "bundleManifests" };