首页 > 解决方案 > Sucrase 只移动 JS 文件

问题描述

我使用 libsucrase在 NodeJS() 中使用 ES6 模块,import/export并且我正在使用以下命令在 commonJ 中生成我的项目的构建: 我的项目文件夹sucrase ./src -d ./build --transforms imports在哪里,是输出。当该过程完成后,我有一个文件夹,其中我的文件转换为 commonJS,但资产文件和每个无 JS 文件都移动到此文件夹,例如目录中的图像和 css 文件或 PUG 文件,只有 JS 文件和目录是感动。我不知道是否可以这样做,因为我已经阅读了文档,但也许它可能与另一个库(与其他库的蔗糖酶)一起做。./src./buildbuildjavascriptsbuildpublicviewssucrase

我的项目结构(src

│   app.js
│
├───public
│   │
│   ├───images
│   │      some-image.png
│   │
│   ├───javascripts
│   │      script.js
│   │
│   └───stylesheets
│          styles.min.css
│
├───routes
│       index.js
│
└───views
    │   index.pug
    │   layout.pug
    │
    └───parts
            footer.pug
            header.pug

转换后的我的项目结构(build

│   app.js
│
├───public
│   │
│   ├───images
│   │
│   ├───javascripts
│   │      script.js
│   │
│   └───stylesheets
│
├───routes
│       index.js
│
└───views
    └───parts

标签: javascriptnode.jsbuild

解决方案


我阅读了sucrase文档,发现仅支持加载 JS 文件(JSX、TS 等)。如果要加载另一种文件,请使用file-loader

Sucrase 还提供了一个名为@sucrase/webpack-loader的包。你可以试一试,但我不确定它是否支持加载图片、非JS文件等。

最后但并非最不重要的一点是,sucrase文档不是很好,我强烈建议不要使用它,因为这样的社区会给您带来麻烦。如果您想深入了解 bundler ,请改用WebpackBabelparcel 。对于现代方法,例如使用 ReactJS,我强烈建议使用gatsby来忘记所有关于 bundler 的事情,你完全可以轻松地将你的 react 应用程序移动到 gatsby 中。

也许这可能无法帮助您解决问题,但我希望我可以为您提供有关问题的图片。分享更重要。祝你好运!


推荐阅读