我正在使用"webpack": "^4.43.0"捆绑我的loopback-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'
}要解决属性,但仍然不能正常工作。
发布于 2020-05-07 19:28:42
来自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♂️
https://stackoverflow.com/questions/61456834
复制相似问题