IntellijのNuxt.jsでimportのailiasを設定したい
本家はこちら
Intellijのvueとかjsのサポートがかなりよくなってきたので、1IDEで完結した欲求がでてきました。
vscodeだとある程度勝手に認識してくれるんだけど、Intellijはできないみたいで設定してあげる必要がある模様。
nuxt.config.jp
module.exports = {
resolve: {
extensions: ['.js', '.json', '.vue', '.ts'],
root: path.resolve(__dirname),
alias: {
'@core': path.resolve(__dirname + '/src_core'),
'@web': path.resolve(__dirname + '/src_web'),
}
// 省略
},
このroot
とalias
を追加すればいける模様。(resolveを書いてなかったらそれも追加で)
import sampleRepos from "@core/modules/repository/sampleRepos
import samplePage from "@web/modules/repository/samplePage
これがジャンプできるようになる。便利
Intellijでdebug実行すると warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended
warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended
ブートストラップクラスパスが追加されているため、共有はブートローダークラスでのみサポートされます
ということらしいが、intellijでしか警告がでない。
Intellij Idea > preference > Build, Execution,Deployment > Async Stack Trace
の Instrumenting agent
をunlockすれば、でなくなる。
intellijでdebugするとこの警告がでてくる warning: forcing TieredStopAtLevel to full optimization because JVMCI is enabled
OpenJDK 64-Bit GraalVM CE 19.3.0 warning: forcing TieredStopAtLevel to full optimization because JVMCI is enabled
JVMCIが有効になっているため、TieredStopAtLevelを完全に最適化する
こういうことらしいが、gradle bootRun
では発生しない。Intellijで発生する。
IntelliJの設定かなにかだろうと思い設定を確認
Run/Debug Configurations
の中に Enable launch optimization
があり、これをunlockすると警告がでなくなった
Vue.jsのcomputedで引数を使いたい
本家はこちら
Vuejsで便利なcomputedですけど、引数取りたいって思うタイミングがあり検証。
ちなみに引数とりたいタイミングは、ループでテーブル作成してるときとかです。
lambda式(アロー関数)を使えばできました。
<template>
<div id="app">
<p>sample('a'):{{sample('a')}}</p> // <- 使用箇所
<p>sample('r'):{{sample('r')}}</p> // <- 使用箇所
</div>
</template>
<script>
export default {
name: "App",
computed: {
sample() {
return r => r === "a"; // <- ここでアロー関数を実行
}
}
};
</script>
出力結果はこちら。
sample('a'):true
sample('r'):false
computed特有のキャッシュ等が効かないらしいけど、methodとwatchでやるんだったらあんまりかわらなくて、computedですっきりかけた方がいいかなと思うので採用します。
mapとflatmapのメモ
本家はこちら
mapとflatmapのメモ.
map: 個数が変わらない。2個渡したら2個返ってくる flatmap: streamに変換させて、それを合成する。戻ってくるのはstreamが1つ。flatmapはstreamを合成してくれる感じのいいやつ。
@RunWith(JUnit4.class)
public class SampleTest {
@Test
public void test() {
// map
Arrays.asList("a,b,c", "d,e")
.stream()
.map(e -> Arrays.stream(e.split(",")))
.forEach(System.out::println);
// flatmap
Arrays.asList("a,b,c", "d,e")
.stream()
.flatMap(e -> Arrays.stream(e.split(",")))
.forEach(System.out::println);
}
}
出力結果は下記
# map
java.util.stream.ReferencePipeline$Head@18ce0030
java.util.stream.ReferencePipeline$Head@4445629
# flatmap
a
b
c
d
e
mapとflatmapのメモ
本家はこちら
mapとflatmapのメモ.
map: 個数が変わらない。2個渡したら2個返ってくる flatmap: streamに変換させて、それを合成する。戻ってくるのはstreamが1つ。
@RunWith(JUnit4.class)
public class SampleTest {
@Test
public void test() {
// map
Arrays.asList("a,b,c", "d,e")
.stream()
.map(e -> Arrays.stream(e.split(",")))
.forEach(System.out::println);
// flatmap
Arrays.asList("a,b,c", "d,e")
.stream()
.flatMap(e -> Arrays.stream(e.split(",")))
.forEach(System.out::println);
}
}
出力結果は下記
# map
java.util.stream.ReferencePipeline$Head@18ce0030
java.util.stream.ReferencePipeline$Head@4445629
# flatmap
a
b
c
d
e