gpt4 book ai didi

javascript - 使用 Webpack 将 ES6 转译为单独的文件

转载 作者:数据小太阳 更新时间:2023-10-29 04:31:52 26 4
gpt4 key购买 nike

是否可以配置 webpack 来做等同于:

babel src --watch --out-dir lib

这样的目录结构是这样的:

- src
- alpha
- beta.js
- charlie
- delta.js
- echo.js
- foxtrot
- golf
- hotel.js

将所有文件编译为 ES5 并在 lib 目录下以相同的结构输出它们:

- lib
- alpha
- beta.js
- charlie
- delta.js
- echo.js
- foxtrot
- golf
- hotel.js

我试过遍历所有文件路径并将它们作为单独的条目传递,但在定义输出文件时,webpack 似乎“忘记”了文件的位置。 Output.path 只提供[hash] token,而Output.file 有更多选项,但只提供[name][hash][chunk],所以至少看起来不支持这种编译。

为了给我的问题提供一些背景信息,我正在创建一个由 React 组件及其相关样式组成的 npm 模块。我正在使用 CSS 模块,因此我需要一种方法将 JavaScript 和 CSS 编译到模块的 lib 目录中。

最佳答案

如果要输出到多个目录,可以使用路径作为入口名。

entry: {
'foo/f.js': __dirname + '/src/foo/f.js',
'bar/b.js': __dirname + '/src/bar/b.js',
},
output: {
path: path.resolve(__dirname, 'lib'),
filename: '[name]',
},

因此,您可以使用函数为您生成满足上述条件的条目列表:

const glob = require('glob');

function getEntries(pattern) {
const entries = {};

glob.sync(pattern).forEach((file) => {
entries[file.replace('src/', '')] = path.join(__dirname, file);
});

return entries;
}

module.exports = {
entry: getEntries('src/**/*.js'),
output: {
path: path.resolve(__dirname, 'lib'),
filename: '[name]',
},
// ...
}

关于javascript - 使用 Webpack 将 ES6 转译为单独的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42670633/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com