path = require 'path' fs = require 'fs-plus' ModuleCache = require '../../src/module-cache' module.exports = (grunt) -> grunt.registerTask 'generate-module-cache', 'Generate a module cache for all core modules and packages', -> appDir = grunt.config.get('atom.appDir') {packageDependencies} = grunt.file.readJSON('package.json') for packageName, version of packageDependencies ModuleCache.create(path.join(appDir, 'node_modules', packageName)) ModuleCache.create(appDir) metadata = grunt.file.readJSON(path.join(appDir, 'package.json')) metadata._atomModuleCache.folders.forEach (folder) -> if '' in folder.paths folder.paths = [ '' 'spec' 'src' 'src/browser' 'static' ] # Reactionary does not have an explicit react dependency metadata._atomModuleCache.folders.push paths: [ 'node_modules/reactionary-atom-fork/lib' ] dependencies: { 'react-atom-fork': metadata.dependencies['react-atom-fork'] } grunt.file.write(path.join(appDir, 'package.json'), JSON.stringify(metadata))