Webpack - React ES6 转译每个模板(src 到 dist)

IT技术 reactjs webpack html-webpack-plugin
2021-05-16 13:59:43

我正在将 webpack 用于 react(es6) 项目。

我的问题

我已经用 ES6构建了react 应用程序,所以我到处都使用import关键字进行依赖。现在对于服务器端渲染,我使用的是 NodeJS,所以它还不支持导入为此,我必须使用require而不是import

现在我已经使用 webpack 来捆绑我的应用程序,但它总是生成最终的捆绑文件 (single.bundle.js),这就是为什么我无法为服务器端渲染导入转译代码块的原因。

解决方案

如果可以转译每个文件(src 到 dist),那么我可以将这个 es5 文件导入到 nodejs 服务器代码中。

问题

webpack 是否可以使用相同的输出而不是捆绑文件来转换整个文件夹?

否则我必须使用 grunt 或 gulp。:(

1个回答

您也可以将 webpack 用于服务器。它将仅转换为 webpack 服务器捆绑包含 react 的特定代码,并通过externals选项排除 node_modules 下面是实施例的webpack.config.js用于服务器端

var nodeModules = {};
fs.readdirSync('node_modules')
    .filter(function(x) {
        return ['.bin'].indexOf(x) === -1;
    })
    .forEach(function(mod) {
        nodeModules[mod] = 'commonjs ' + mod;
    });

module.exports = {
    entry: './src/server.js', 
    output: {
        path: __dirname,
        filename: 'server.js'
    },
    target: 'node',
    node: {
        console: false,
        global: false,
        process: false,
        Buffer: false,
        __filename: false,
        __dirname: false,
    },
    externals: nodeModules,
}