使用webpack捆绑回环

问题描述 投票:0回答:1

我使用的是 "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'
    }

来解决属性问题,但仍然不能正常工作。

node.js webpack loopbackjs webpack-4
1个回答
0
投票

LoopBack团队的朋友们,你们好👋。

LoopBack不支持通过Webpack进行捆绑,只支持通过 浏览器化 是支持的。

在启动时,LoopBack是使用动态路径加载文件的,因此它需要与捆绑程序进行自定义集成,以确保动态加载的工件被包含在浏览器捆绑中,并能被loopback-boot加载。

交叉发布自 https:/loopback.iodocenlb3Using-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')

你可以找到来源为 compileToBrowserify 在这里 loopback-boot/lib/bundler.js. 我想应该可以改编成使用Webpack而不是Browserify APIs的脚本,但我从来没有尝试过,所以YMMV 🤷♂️。

© www.soinside.com 2019 - 2024. All rights reserved.