gpt4 book ai didi

javascript - 如何正确地将 ES6 模块函数导出为库以在 Node 应用程序中使用?

转载 作者:行者123 更新时间:2023-11-30 20:30:18 25 4
gpt4 key购买 nike

假设我有一个 node.js 应用程序,它不通过我的 webpack 捆绑:

Node 应用

const  Html = require('./build/ssr-bundle.js');
let result = Html.ssrbundle.render();
console.log(result);

这是我的 ES6/JSX 文件,它正在由 webpack 处理,我希望能够在我的 Node 应用程序中访问该渲染函数(你猜对了,我正在尝试对 SSR 使用react;))

src/Html.js -(webpack)-> build/ssr-bundle.js

import React from 'react';
import ReactDOMServer from 'react-dom/server';
import CustomComponent from './custom-component.js';


module.exports = {
render : function () {
return ReactDOMServer.renderToString(<CustomComponent />);
} };

这是我的 Webpack 配置

webpack.config.js

 var path = require('path');
module.exports = {
entry: {
ssr: './src/Html.js',
//frontend: './src/frontend-Html.js'
},
output: {
path: path.resolve(__dirname, 'build'),
filename: 'ssr-bundle.js',
library: 'ssrbundle'
},
module: {
rules: [
{
test: /\.js$/,
loader: 'babel-loader',
query: {
presets: ['env','react'],
plugins: ["transform-es2015-destructuring", "transform-object-rest-spread"]
}
},
{
test:/\.css$/,
use:['style-loader','css-loader']
}
]
},
stats: {
colors: true
},
devtool: 'source-map'
};

无论我做什么,我都无法弄清楚如何正确使用导出的变量“ssrbundle”以及随后的渲染函数。如果我将我的 Node 应用程序包含在 bundle 中,一切都会好起来的,但这不是我想要做的。

最佳答案

正如 apokryfos 所建议的,我尝试了 libraryTarget Webpack 设置。您可以在此处找到有关使用 Webpack 编写库(我真正想要实现的目标)的更多信息:

https://webpack.js.org/guides/author-libraries/

这里是代码示例:

https://github.com/kalcifer/webpack-library-example/blob/master/webpack.config.babel.js .

我的诀窍是将 libraryTarget 设置为“umd”,这与默认设置的“var”设置不同,适用于将脚本包含在 HTML 文件中

关于javascript - 如何正确地将 ES6 模块函数导出为库以在 Node 应用程序中使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50415562/

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