2017-12-21 10 views
0

私が持っている:私はバンドラを実行したときにScala.jsで@JSImportを使用するときのパスの指定方法は?

$ ls -last /home/brandon/workspace/ced2ar/jsgen/target/scala-2.12/scalajs-bundler/main/node_modules/bootstrap/dist/js/bootstrap.min.js 
40 -rw-r--r-- 1 brandon brandon 37045 Jul 25 2016 /home/brandon/workspace/ced2ar/jsgen/target/scala-2.12/scalajs-bundler/main/node_modules/bootstrap/dist/js/bootstrap.min.js 

@JSImport("node_modules/bootstrap/dist/js/bootstrap.min.js", "jQuery") 

は、しかし、私は次のエラーを取得する:

[error] ModuleNotFoundError: Module not found: Error: Can't resolve 'node_modules/bootstrap/dist/js/bootstrap.min.js' in '/home/brandon/workspace/ced2ar/jsgen/target/scala-2.12/scalajs-bundler/main' 
[error]  at factoryCallback (/home/brandon/workspace/ced2ar/jsgen/target/scala-2.12/scalajs-bundler/main/node_modules/webpack/lib/Compilation.js:269:40) 

私もちょうど@JSImportのファイル名bootstrap.min.jsを使用してみました。 (注:私は、私はこの問題を解決たらそれは、ブートストラップは、jQueryのにやっているように思わ以来、私はまだ、サルのパッチを扱うの問題を持っていることを把握。)

+0

'@ JSImport'に' 'bootstrap.min.js" 'を書くだけでいいはずです。 Node.jsモジュール内でその名前を解決するのは、バンドラの仕事でなければなりません。 – sjrd

+0

私はsjs bundler 0.9.0を使用しています。私のbuild.sbtはここにあります(もし重要であれば、質問に重要な部分を追加します):https://gist.github.com/bbarker/7ba6f1f1e92066343be6d2135a182319 - '@ JSImport'を使ってさまざまなオプションを試しました代わりに 'jquery.slim.min.js'を読み込み、常に同じ結果を返します。それでも問題が解明されなければ、私は最小限の例をまとめようとします。 – bbarker

+0

これはうまくいきました: '@JSImport(" bootstrap/dist/js/bootstrap.min.js ")' - thanks @dispalt – bbarker

答えて

2

あなたのパスにnode_modules一部を削除します。

@JSImport("bootstrap/dist/js/bootstrap.min.js", "jQuery") 

このファイルはCommonJS互換であることも確認してください。

関連する問題