Kaynağa Gözat

Add Babel build script for Lerna.

Builds packages/*/src/**/*.js into packages/*/lib/**/*.js, ignoring
tests.
Renée Kooi 6 yıl önce
ebeveyn
işleme
8b1bae796d
2 değiştirilmiş dosya ile 35 ekleme ve 1 silme
  1. 34 0
      bin/build-lib.js
  2. 1 1
      package.json

+ 34 - 0
bin/build-lib.js

@@ -0,0 +1,34 @@
+const babel = require('babel-core')
+const { promisify } = require('util')
+const glob = promisify(require('glob'))
+const mkdirp = promisify(require('mkdirp'))
+const fs = require('fs')
+const path = require('path')
+
+const transformFile = promisify(babel.transformFile)
+const writeFile = promisify(fs.writeFile)
+
+const SOURCE = 'packages/{*,@uppy/*}/src/**/*.js'
+// Files not to build (such as tests)
+const IGNORE = /\.test\.js$|__mocks__/
+
+async function buildLib () {
+  const files = await glob(SOURCE)
+  for (const file of files) {
+    if (IGNORE.test(file)) continue
+
+    const libFile = file.replace('/src/', '/lib/')
+    const { code, map } = await transformFile(file, {})
+    await mkdirp(path.dirname(libFile))
+    await Promise.all([
+      writeFile(libFile, code),
+      writeFile(libFile + '.map', JSON.stringify(map))
+    ])
+    console.log(libFile)
+  }
+}
+
+buildLib().catch((err) => {
+  console.error(err.stack)
+  process.exit(1)
+})

+ 1 - 1
package.json

@@ -134,7 +134,7 @@
     "build:gzip": "node ./bin/gzip.js",
     "size": "echo 'JS Bundle mingz:' && cat ./dist/uppy.min.js | gzip | wc -c && echo 'CSS Bundle mingz:' && cat ./dist/uppy.min.css | gzip | wc -c",
     "build:js": "npm-run-all build:bundle build:lib",
-    "build:lib": "babel --version && babel src --source-maps -d lib --ignore '*.test.js'",
+    "build:lib": "babel --version && node ./bin/build-lib.js",
     "build": "npm-run-all --parallel build:js build:css --serial build:gzip size",
     "clean": "rm -rf lib && rm -rf dist",
     "lint:fix": "eslint src test website/scripts website/build-examples.js website/update.js website/themes/uppy/source/js/common.js --fix",