Sucrase 只移动 JS 文件

Jef*_*cha 5 javascript build node.js

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

我的项目结构( 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
Run Code Online (Sandbox Code Playgroud)

转换后我的项目结构(build

?   app.js
?
????public
?   ?
?   ????images
?   ?
?   ????javascripts
?   ?      script.js
?   ?
?   ????stylesheets
?
????routes
?       index.js
?
????views
    ????parts
Run Code Online (Sandbox Code Playgroud)

Shi*_*BR2 6

我阅读了sucrase文档,发现只支持加载 JS 文件(JSX、TS 等)。如果您想加载其他类型的文件,请使用file-loader

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

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

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