2017-02-11 140 views
0

我test.fsx樣子:編譯寓言生成代碼的WebPack

module Test 
#r "./node_modules/fable-core/Fable.Core.dll" 
open Fable.Core 
open Fable.Import.Browser 
type ItemCompletedData = {itemsCompleted:int} 
type AddData    = {text:string} 
[<Pojo>] 
type ActionData = 
    | ItemCompleted of ItemCompletedData 
    | Add of AddData 
let test = (Add {text="hello world"}) 
console.log(test) 

與編譯:

node node_modules/fable-compiler/index.js --projFile test.fsx -o ./js/ 

webpack.config.js樣子:

var path = require("path"); 
module.exports = { 
    entry: { 
    main: ["./js/test.js"] 
    }, 
    output: { 
    path: path.resolve(__dirname, "build"), 
    publicPath: ".", 
    filename: "[name].js" 
    } 
    ,devServer: { 
    contentBase: path.join(__dirname, "./"), 
    compress: true, 
    port: 9000 
    } 
}; 

運行使用以下命令的webpack:

node node_modules/webpack/bin/webpack.js --devtool source-map 

這將會給warnigns:在./~/[email protected]/umd/Symbol.js 3

警告:24-31關鍵 依賴:要求功能的使用方式,其中依賴關係 不能靜態提取

警告在./~/[email protected]/umd/Util.js 3:24-31臨界 依賴性:要求功能的方式用於依賴關係 無法靜態提取

當打開使用main.js我在控制檯得到一個錯誤的HTML文件:

Symbol.js:3 Uncaught Error: Cannot find module "." 

的symbol.js來自fable-core/umd/Symbol(傳說中生成的腳本)。當我手動將其更改爲:fable-core/Symbol(對於所有的寓言核心依賴項),那麼我可以在沒有警告的情況下編譯webpack,並且不會在頁面中出現錯誤。

如何避免此錯誤而無需手動更改寓言輸出?

回答

0

在寫這個問題時,我正在經歷這些步驟,並嘗試在寓言編譯器命令中添加-m es2015

這是解決方案。

現在,寓言代碼可以加載我只需要解決暴亂生成的JS代碼創建的問題。我需要在設置riot.mixin之後加載標籤,以便將它們加載到嵌套的requiejs umd語句中(可能會導致錯誤)。

require riot 
    ... require tag1 tag2 ...