为浏览器初始化 bucklescript 项目的正确方法

proper way to initialize a bucklescript project for the browser

我可以使用以下命令创建、编译和运行 bucklescript 项目

bsb -init new-project
cd new-project
npm run build
node ./src/demo.bs.js

但是,我想使用 html 文件中嵌入的脚本生成的 demo.bs.js 中的定义。生成的 js 包含对 require 的调用,这在浏览器中不起作用。我可能可以让它与 browserify 或其他东西一起工作,但我想必须有一种正确的方法来设置 bucklescript 项目以定位 web 应用程序,对吗?

BuckleScript 输出 JavaScript 个模块,默认为 commonjs 格式(节点模块格式),但也可以配置为输出 amdjs 或 es6 模块。你从那里用它们做什么完全取决于你。您可以使用 browserify、rollup 或 parcel,但大多数人使用 。这是一个应该适合您的简单 webpack 配置:

const path = require('path');

module.exports = {
  entry: './src/demo.bs.js',
  output: {
    path: path.join(__dirname, "public"),
    filename: 'bundle.js',
  },
};

把这个放在项目根目录的 ẁebpack.config.js 中,然后 运行:

npm install webpack
webpack

然后您可以在 html 文件中包含 ./public/bundle.js

注意:如果您使用的是 react 模板将为您设置所有这些:

bsb -init new-project -theme react