使用webpack捆绑环回



我正在使用"webpack": "^4.43.0"绑定环回-3应用程序。我可以运行webpack命令而没有任何问题,它会执行,但在运行捆绑文件后,我得到以下错误:

Error: ENOENT: no such file or directory, lstat 'D:cldr'

这里是webpack.conf.js的内容:

const path = require('path');
const LoopbackBootPlugin = require('loopback-webpack-plugin');
module.exports = {
target: 'node',
entry: './server/server.js',
mode: 'production',
resolve: {
extensions: ['.js', '.json'],
},
output: {
path: path.resolve(__dirname, 'dist'),
filename: `bundle.js`,
},
optimization: {
minimize: false
},
plugins: [
new LoopbackBootPlugin()
]
};

我试着添加

alias: {
cldr$: 'cldrjs',
cldr: 'cldrjs/dist/cldr'
}

解决了财产问题,但仍然不能正常工作。

来自LoopBack团队的您好👋

LoopBack不支持通过Webpack绑定,只支持Browserify。

在启动时,LoopBack使用动态路径加载文件,因此它需要与捆绑器进行自定义集成,以确保动态加载的工件包含在浏览器捆绑包中,并且可以通过环回引导加载。

交叉过帐自https://loopback.io/doc/en/lb3/Using-Browserify.html:

构建步骤加载所有配置文件,合并来自app.local.js等其他配置文件的值,并生成一组可用于启动应用程序的指令。

这些说明必须与models/boot/中的所有配置脚本一起包含在浏览器捆绑包中。

别担心,你不必了解这些细节。只要打电话给boot.compileToBrowserify(),它就会为你处理一切。

var browserify = require('browserify');
var boot = require('loopback-boot');
var b = browserify({
basedir: appDir,
});
// add the main application file
b.require('./browser-app.js', { expose: 'loopback-app' });
// add boot instructions
boot.compileToBrowserify(appDir, b);
// create the bundle
var out = fs.createWriteStream('browser-bundle.js');
b.bundle().pipe(out);
// handle out.on('error') and out.on('close')

您可以在loopback-boot/lib/bundler.js中找到compileToBrowserify的来源。我认为应该可以调整脚本以使用Webpack而不是Browserify API,但我从未尝试过,所以YMMV🤷‍♂️

最新更新