为浏览器初始化 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。这是一个应该适合您的简单 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
。
注意:如果您使用的是 reason-react,react
模板将为您设置所有这些:
bsb -init new-project -theme react
我可以使用以下命令创建、编译和运行 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。这是一个应该适合您的简单 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
。
注意:如果您使用的是 reason-react,react
模板将为您设置所有这些:
bsb -init new-project -theme react