Как создать минимизированный файл и файл карты с babeljs? - PullRequest
0 голосов
/ 08 января 2019

Я пытаюсь создать исходную карту с помощью babel. Я использую пряжу в качестве менеджера пакетов. Из следующих файлов с командой:

yarn bb

Я получаю правильные source.min.js и source.min.js.map . Но я не могу найти, как скопировать css и оригинальный файл js в каталог dist. Поэтому я переключаюсь на:

yarn bjs

Я получаю правильный source.min.js , source.js , source.css . Но result.map всегда равно нулю (не определено, равно нулю).

Я пытался использовать sourceMaps "inline" или "both", но result.map остается пустым, и я получаю result.code, содержащий код и карту.

Как я могу получить исходную карту.

package.json:

{
  "name": "MyModule",
  "version": "1.0.0",
  "license": "MIT",
  "devDependencies": {
    "@babel/cli": "^7.2.3",
    "@babel/core": "^7.2.2",
    "babel-preset-minify": "^0.5.0",
    "jest": "^23.6.0",
    "jquery": "^3.3.1",
    "jsdoc": "^3.5.5",
    "jsdom": "^13.1.0",
    "minami": "^1.2.3"
  },
  "scripts": {
    "bjs": "node build.js",
    "bb": "babel src/source.js --out-file dist/source.min.js --source-maps",
    "test": "jest",
    "doc": "jsdoc --configure jsdoc.conf.json"
  },
  "babel": {
    "presets": [
      "minify"
    ]
  }  
}

build.js:

const babel = require("@babel/core");
const fs = require('fs');
const path = require('path');

var options = {
    sourceMaps: true,
    presets: ["minify"]
};

babel.transformFile("src/source.js", options, function(err, result) {   
  stToDist(result.code, "source.min.js");
  stToDist(result.map, "source.min.js.map");
  console.log("source.js done!");   
});

copyToDist('src/source.js');
copyToDist('src/source.css');

function copyToDist(file) {
  var dest = "dist/" + path.basename(file);
  fs.copyFile(file, dest, (err) => {
    if (err) throw err;
    console.log(file + " copied to " + dest);
  });
}

function stToDist(st, file) {
  fs.writeFile("dist/" + file, st, function(err) {
    if(err) { return console.log(err);} });   
}
...