UNPKG

als-require

Version:

A utility for using CommonJS require in the browser and creating bundles.

27 lines (25 loc) 1.3 kB
const UglifyJS = require("uglify-js"); const { writeFileSync } = require('fs'); const { join } = require('path') const getFullPath = require('../browser/get-full-path'); const getContents = require('../browser/get-contents') const getFn = require('../lib/get-fn'); const parseError = require('../lib/parse-error'); const Require = require('../browser/require'); const getNodeModules = require('../browser/get-node-modules') const orderKeys = require('../lib/order-keys') const contents = [orderKeys,getFullPath, getNodeModules, getContents, parseError, getFn, Require]; const content = /*js*/`const Require = (function(){ const packageJsonCache = {}; ${contents.map(fn => fn.toString()).join('\n')} ${contents.map(fn => `Require.${fn.name} = ${fn.name};`).join('')} return Require; })(); const require = (path, options, ...params) => Require.getModule(path, options,...params); ` writeFileSync(join(__dirname, '..', 'require.js'), content, 'utf-8') const minified = UglifyJS.minify(content,{ keep_fnames: true }).code // .replace(',require=Require.getModule;', ';\nconst require=Require.getModule;') .replace(',require=(', ';\nconst require=(') writeFileSync(join(__dirname, '..', 'require.min.js'), minified, 'utf-8') console.log('Browser file builded')