我和开发团队一直在将我们当前的设置从 webpack 迁移到 esbuild。我们有一些依赖于 actioncable 的咖啡脚本文件。自从删除 webpacker 依赖项/webpack-dev-server 后,Actioncable 已完全停止。有谁知道如何让 actioncable 在窗口级别运行,以便我们的咖啡脚本文件可以访问它?我们使用 sockjs-node 进行 webpack 设置,并且需要使用 esbuild 获得相同的结果。
包.json
{
"name": "app",
"private": "true",
"dependencies": {
"@rails/actioncable": "^7.0.0"
"@hotwired/turbo-rails": "^7.0.1",
"@popperjs/core": "^2.10.2",
"bootstrap": "^5.1.1",
"esbuild": "^0.13.3",
"esbuild-rails": "^1.0.3",
"sass": "^1.42.1"
},
"scripts": {
"build": "node esbuild.config.js",
"build:css": "sass ./app/assets/stylesheets/application.bootstrap.scss ./app/assets/builds/application.css --no-source-map --load-path=node_modules"
}
}
esbuild.config.js
const path = require('path')
const rails = require('esbuild-rails')
require("esbuild").build({
entryPoints: ["application.js"],
bundle: true,
outdir: path.join(process.cwd(), "app/assets/builds"),
absWorkingDir: path.join(process.cwd(), "app/javascript"),
watch: process.argv.includes("--watch"),
plugins: [rails()],
}).catch(() => process.exit(1))
应用程序.js
从“actioncable”导入 actioncable