UNPKG

lilacs

Version:

A web frontend building tool for teamwork, with automaticly compiling, merging, minifying, syncing files to server, supporting distributed servers, ensuring css or html files' inline reference with correct absolute path, and more.

52 lines (40 loc) 1.49 kB
const fs = require('fs'); const path = require('path'); const vars = require('../data/vars'); const fileUtil = require('../util/file'); module.exports = (module, isJs) => { let fileSuffix = isJs ? '.js' : '.css'; let nodeModulesDir = vars.projectRoot + '/node_modules/'; // bootstrap/dist/js/bootstrap.js, bootstrap/dist/css/bootstrap.css let directTryFilePath = nodeModulesDir + module + fileSuffix; if (fileUtil.fileExist(directTryFilePath)) { return directTryFilePath; } // jquery, @company/package let libraryDir = nodeModulesDir + module; let packageFilePath = nodeModulesDir + module + '/package.json'; // not exist if (!fileUtil.fileExist(packageFilePath)) { return null; } let packageJson = require(packageFilePath); let mainFile = packageJson['amd:main'] || packageJson['umd:main'] || packageJson.main; // jquery, no main field if (!mainFile) { return null; } // main: 'dist/demo', main: 'dist/demo.js', main: 'dist/demo.css', main: './dist/demo.js' let libraryMainFile = ''; if (isJs) { libraryMainFile = mainFile.slice(-3) === '.js' ? mainFile : mainFile + '.js'; } else { libraryMainFile = mainFile.slice(-4) === '.css' ? mainFile : mainFile + '.css'; } let realFilePath = path.join(libraryDir, libraryMainFile); // not exist if (!fileUtil.fileExist(realFilePath)) { return null; } return realFilePath; };