Esbuild в Фениксе jQuery

#jquery #node-modules #phoenix #esbuild

#jquery #узлы-модули #Феникс #esbuild

Вопрос:

В настоящее время я использую esbuild для загрузки своих статических ресурсов. Я использую его с файлом package.json для поддержки моих плагинов javascript. Плагин jQuery доступен в моем app.js, но не в моих модулях node_modules. Ошибки модуля datepicker: «jQuery не определен»

В webpack был модуль ProvidePlugin, который исправил это. Как мне это сделать с помощью esbuild?

app.js

 import jquery from "jquery"; window.jQuery = jquery; window.$ = jquery; $ = jquery;  import datepicker from "jquery-ui/ui/i18n/datepicker-nl-BE"  ----gt;gt;gt;gt;gt; ReferenceError: jQuery is not defined at datepicker-nl-BE.js:13 lt;lt;lt;lt;lt;--------   

dev.бывшие

 watchers: [  #esbuild: {Esbuild, :install_and_run, [:default, ~w(--sourcemap=inline --watch)]},  node: ["esbuild.js", "--watch", cd: Path.expand("../assets", __DIR__)],  node: ["sass-watch.js",  cd: Path.expand("../assets", __DIR__),  into: IO.stream(:stdio, :line),  stderr_to_stdout: true  ]  ]  

esbuild.js

 const esbuild = require('esbuild') const sassPlugin = require('esbuild-plugin-sass')  // Decide which mode to proceed with let mode = 'build' process.argv.slice(2).forEach((arg) =gt; {  if (arg === '--watch') {  mode = 'watch'  } else if (arg === '--deploy') {  mode = 'deploy'  } })  const loader =  {  '.png': 'file',  '.ttf': 'file'  }  // Define esbuild options   extras for watch and deploy let opts = {  entryPoints: ['js/app.js'],  bundle: true,  logLevel: 'info',  target: 'es2016',  outdir: '../priv/static/assets',  loader,  plugins: [sassPlugin()] } if (mode === 'watch') {  opts = {  watch: true,  sourcemap: 'inline',  ...opts  } } if (mode === 'deploy') {  opts = {  minify: true,  ...opts  } }  // Start esbuild with previously defined options // Stop the watcher when STDIN gets closed (no zombies please!) esbuild.build(opts).then((result) =gt; {  if (mode === 'watch') {  process.stdin.pipe(process.stdout)  process.stdin.on('end', () =gt; { result.stop() })  } }).catch((error) =gt; {  process.exit(1) })