首页 文章

使用webpack编译寓言生成的代码

提问于
浏览
0

我的test.fsx看起来像:

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

这将给出警告:

警告在./~/.0.7.26@fable-core/umd/Symbol.js 3:24-31严重依赖:require函数以不能静态提取依赖关系的方式使用警告./~/ . 0.7.26@fable-core/umd/Util.js 3:24-31严重依赖:require函数的使用方式是无法静态提取依赖项

打开使用main.js的html文件时,我在控制台中收到错误:

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

symbol.js来自 fable-core/umd/Symbol (在寓言生成的脚本中) . 当我手动将其更改为: fable-core/Symbol (对于所有fable-core依赖项)然后我可以在没有警告的情况下进行webpack编译,并且不会在页面中出现错误 .

如何在不必手动更改寓言输出的情况下防止此错误?

1 回答

  • 0

    在编写这个问题时,我正在完成这些步骤并尝试将 -m es2015 添加到fable编译器命令中 .

    那就是解决方案 .

    既然fable代码可以加载我只需要解决joc代码创建的暴乱产生的问题 . 我需要在设置riot.mixin后加载标签,所以我在嵌套的requiejs umd语句中加载它们(可能会导致错误) .

    require riot
      ... require tag1 tag2 ...
    

相关问题