2017-09-08 11 views
0

elm 0.18の使用。elm-packageのソースディレクトリの表示

src/フォルダのすべてのモジュールを表示するにはどうすればよいですか?私は、ディレクトリの中に私のモジュールを配置しているが、私はこの方法でelm-packageにファイルを追加しましたsrc/views/user.

にモジュールを入れたとき、私はI cannot find module 'ViewsUserLogin'のようなエラーが発生しますが、それはまだ兄弟ファイル以外の何かを見つけることができません。

"source-directories": [ 
    "./src", 
    "./src/views/", 
    "./src/views/user/", 
    ... 
    "./dist" 
], 

最終的にelm-packageに、src/内のすべてのファイルを検索するように伝えたいと思います。どうすればこれらの問題を解決できますか?

編集:私もギャルプを使用しています。

// gulpfile.js 

var gulp = require('gulp'); 
var elm = require('gulp-elm'); 
var gutil = require('gulp-util'); 
var plumber = require('gulp-plumber'); 
var connect = require('gulp-connect'); 

// File paths 
var paths = { 
    dest: 'dist', 
    elm: 'src/*.elm', 
    static: 'src/*.{html,css}' 
}; 

// Init Elm 
gulp.task('elm-init', elm.init); 

// Compile Elm to HTML 
gulp.task('elm', ['elm-init'], function(){ 
    return gulp.src(paths.elm) 
     .pipe(plumber()) 
     .pipe(elm()) 
     .pipe(gulp.dest(paths.dest)); 
}); 

// Move static assets to dist 
gulp.task('static', function() { 
    return gulp.src(paths.static) 
     .pipe(plumber()) 
     .pipe(gulp.dest(paths.dest)); 
}); 

// Watch for changes and compile 
gulp.task('watch', function() { 
    gulp.watch(paths.elm, ['elm']); 
    gulp.watch(paths.static, ['static']); 
}); 

// Local server 
gulp.task('connect', function() { 
    connect.server({ 
     root: 'dist', 
     port: 3000 
    }); 
}); 

// Main gulp tasks 
gulp.task('build', ['elm', 'static']); 
gulp.task('default', ['connect', 'build', 'watch']); 

答えて

2

私はあなたのディレクトリを大文字に変換し、その後、あなたは

import Views.User.ViewsUserLogin as ViewsUserLogin 

を使用することができますし、使用のためのあなたの理由があるかもしれViewsUserLoginのトップが

module Views.User.ViewsUserLogin exposing (..) 

(PSを読んでする必要があります。しかし、ElmはWebpackを使ってホットローディングをサポートしているため、開発がはるかに合理化されています(例えば、https://github.com/simonh1000/elm-webpack-starter参照)

(pps Elmはjavascriptほどファイルを分離しない傾向があります。大きなプロジェクトでも提案しているような二重ネスティングは一度もありません。https://www.youtube.com/watch?v=XpDsk374LDE&t=1827sを見て価値があるかもしれません)

+0

優れていませんでしたガルプやエルムパッケージで何かを変更する。 Webpackとディレクトリの再構築を調べる。 'Views.User.Foo'モジュールに名前をつけ、' Views.Blog.Foo'モジュールをもう1つ持っていたら、衝突がありますか? –

+1

はまったくありません。 "as"のようにしないで、完全修飾されたものすべてを参照するか、例えば、 'Import Views.User.Foo as UserFoo' –

+0

また、私はあなたのwebpackレポを実行しました。かなり滑らかです。 elmのためのウェブパッケージの他の利点はありますか? –

関連する問題