Skip to content

Instantly share code, notes, and snippets.

@pagameba
Created April 25, 2020 11:51
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save pagameba/b3f8aa27bf2c1bcaed9a2e0cf7cf5eec to your computer and use it in GitHub Desktop.
Save pagameba/b3f8aa27bf2c1bcaed9a2e0cf7cf5eec to your computer and use it in GitHub Desktop.
export async function test() { }
const path = require("path")
const fs = require('fs')
const defaultConfig = require("@parcel/config-default")
const { default: Parcel, createWorkerFarm } = require("@parcel/core")
const { NodeFS, MemoryFS } = require("@parcel/fs")
const workerFarm = createWorkerFarm()
const nodeFS = new NodeFS()
const memoryFS = new MemoryFS(workerFarm)
// set to memoryFS to using the memory file system as input
let inputFS = nodeFS
const BASE_PATH = '/build'
const SRC_PATH = `${BASE_PATH}/src`
const DIST_PATH = `${BASE_PATH}/dist`
const CODE_PATH = path.join(__dirname, 'src', 'api.js')
const bundler = new Parcel({
entries: inputFS == memoryFS ? `${SRC_PATH}/api.js` : CODE_PATH,
cache: false,
defaultConfig: {
...defaultConfig,
filePath: require.resolve("@parcel/config-default"),
},
defaultEngines: {
browsers: ["last 1 Chrome version"],
},
targets: {
main: {
engines: { browsers: ["last 1 Chrome version"] },
distDir: `${DIST_PATH}`
}
},
inputFS: inputFS,
outputFS: memoryFS,
workerFarm,
})
fs.readFile(path.join(__dirname, 'src', 'api.js'), async (err, code) => {
await memoryFS.mkdirp(SRC_PATH)
await memoryFS.mkdirp(DIST_PATH)
await memoryFS.writeFile(`${SRC_PATH}/api.js`, code)
console.log('bunder starting')
await bundler.run()
console.log('bunder complete')
const files = await memoryFS.readdir("/build/dist/")
for (let file of files) {
console.log(file)
}
await workerFarm.end()
});
{
"name": "parcel-test",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC",
"devDependencies": {
"parcel": "^2.0.0-alpha.3.2"
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment