首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >平面巴贝尔输出

问平面巴贝尔输出
EN

Stack Overflow用户
提问于 2016-12-12 20:58:17
回答 2查看 573关注 0票数 0

我在src目录中有一个具有嵌套文件结构的项目。直到现在,我还在使用babel --out-dir lib src。最近,我有了一个让用户直接使用单独文件的想法,所以基本上我想转换这个结构:

代码语言:javascript
复制
| src/
|   a.js
|   b.js
|   c/
|     d.js
|     e/
|       f.js

这方面:

代码语言:javascript
复制
| lib/
|   a.js
|   b.js
|   d.js
|   f.js

我已经尝试过babel --out-dir lib src/*、babel --out-dir lib src/**、babel --out-dir lib src/**/*.js,但它们都没有按预期工作--有些文件多次复制(一次在顶层,一次在子目录中)或仅在子目录中。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-12-21 02:10:24

不幸的是,它不能仅使用babel命令完成,因为babel没有任何类型的--no-recursive选项。

但是,如果您不害怕分号和find的自由使用,您可以在一行代码中这样做:

代码语言:javascript
复制
babel -d lib $(find src -type d); find lib/* -maxdepth 0 -type d | xargs rm -r

在此之前:

代码语言:javascript
复制
$ tree src
src
├── a.js
├── b.js
└── c
    ├── d.js
    └── e
        └── f.js

之后:

代码语言:javascript
复制
$ tree lib
lib
├── a.js
├── b.js
├── d.js
└── f.js
票数 1
EN

Stack Overflow用户

发布于 2017-08-29 11:54:36

我刚刚发现了babel-cli的这个问题,它一直覆盖我源文件的内容。使用Node脚本解决:

代码语言:javascript
复制
const babel = require('babel-core');
const glob = require('glob');
const fs = require('fs');

    // glob passes an array of path/filenames into callback as files
    glob('./src/**/*.js', {}, (er, files) => {
        // for each filename
        files.forEach(file => {
            // transform that filename, your presets/plugins may vary
            babel.transformFile(file, {presets: ['es2015', 'es2017', 'stage-3'], babelrc: false}, (err, result) => {
                if (!err) {
                    console.log(`${file} transpiled`);
                    // if it worked, write it to the new dir (in my case it's root)
                    fs.writeFileSync(`./${result.options.basename}.js`, result.code);
                }
            });
        })
    });

依赖关系:

代码语言:javascript
复制
"devDependencies": {
    "babel-core": "^6.26.0",
    "babel-eslint": "7",
    "babel-jest": "^20.0.3",
    "babel-loader": "^6.2.4",
    "babel-plugin-istanbul": "^4.1.4",
    "babel-plugin-transform-es2015-modules-commonjs": "^6.16.0",
    "babel-plugin-transform-runtime": "^6.12.0",
    "babel-preset-es2015": "^6.24.1",
    "babel-preset-es2017": "^6.9.2",
    "babel-preset-stage-3": "^6.24.1",
    "expect": "^1.20.2",
    "glob": "^7.1.2",
    "jest": "^20.0.4"
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41109437

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档