2017-09-08 68 views
0

使用elm 0.18。查看elm-package中的源目錄

如何讓榆木查看src/文件夾中的所有模塊?我已經安排我的模塊插入目錄,但我得到這樣I cannot find module 'ViewsUserLogin'錯誤,當我把一個模塊插入src/views/user.

我以這種方式添加的文件elm-package,但它仍然無法找到其它任何比同級文件:

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

最終,我想告訴elm-package查找src/內的所有文件。我該如何解決這些問題?

編輯:我也使用gulp。

// 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榆樹往往不是沒有單獨的文件出來這麼多的JavaScript,我從來沒有做過雙重嵌套如您在大型項目甚至建議 - 也許值得你看https://www.youtube.com/watch?v=XpDsk374LDE&t=1827s

+0

優秀,沒有改變吞嚥或榆樹包裝中的任何東西。研究webpack和目錄重組。如果我要命名一個模塊'Views.User.Foo'並且有另一個模塊'Views.Blog.Foo',會不會有碰撞? –

+1

根本不是。或者不要像'as'那樣指代完全合格的所有東西,或者使用'導入Views.User.Foo作爲UserFoo' –

+0

此外,我剛剛運行您的webpack回購。非常光滑。 webpack的榆樹還有其他優勢嗎? –