Elm Webpack Starter 使用教程
1. 项目的目录结构及介绍
elm-webpack-starter/
├── src/
│ ├── assets/
│ ├── elm/
│ │ └── Main.elm
│ ├── index.html
│ └── index.js
├── .gitignore
├── package.json
├── webpack.config.js
└── README.md
src/
:源代码目录,包含所有前端资源。assets/
:静态资源文件夹,如图片、字体等。elm/
:Elm 代码文件夹,包含主入口文件Main.elm
。index.html
:项目的主 HTML 文件。index.js
:Webpack 的入口文件,负责加载 Elm 代码。
.gitignore
:Git 忽略文件配置。package.json
:Node.js 项目的依赖和脚本配置。webpack.config.js
:Webpack 的配置文件。README.md
:项目说明文档。
2. 项目的启动文件介绍
index.js
index.js
是 Webpack 的入口文件,负责加载 Elm 代码并将其嵌入到 HTML 中。以下是 index.js
的基本内容:
import { Elm } from './elm/Main.elm';
Elm.Main.init({
node: document.getElementById('root')
});
import { Elm } from './elm/Main.elm';
:导入 Elm 主模块。Elm.Main.init({ node: document.getElementById('root') });
:初始化 Elm 应用,并将 Elm 应用挂载到 ID 为root
的 DOM 元素上。
index.html
index.html
是项目的主 HTML 文件,包含一个用于挂载 Elm 应用的 DOM 元素。以下是 index.html
的基本内容:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Elm Webpack Starter</title>
</head>
<body>
<div id="root"></div>
<script src="main.js"></script>
</body>
</html>
<div id="root"></div>
:用于挂载 Elm 应用的 DOM 元素。<script src="main.js"></script>
:加载由 Webpack 打包生成的 JavaScript 文件。
3. 项目的配置文件介绍
webpack.config.js
webpack.config.js
是 Webpack 的配置文件,负责定义如何打包和构建项目。以下是 webpack.config.js
的基本内容:
const path = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');
module.exports = {
entry: './src/index.js',
output: {
path: path.resolve(__dirname, 'dist'),
filename: 'main.js'
},
module: {
rules: [
{
test: /\.elm$/,
exclude: [/elm-stuff/, /node_modules/],
use: {
loader: 'elm-webpack-loader',
options: {
debug: true
}
}
}
]
},
plugins: [
new HtmlWebpackPlugin({
template: 'src/index.html'
})
],
devServer: {
contentBase: path.join(__dirname, 'dist'),
compress: true,
port: 8080
}
};
entry: './src/index.js'
:定义 Webpack 的入口文件。output: { path: path.resolve(__dirname, 'dist'), filename: 'main.js' }
:定义输出文件的路径和名称。module.rules
:定义如何处理不同类型的文件。test: /\.elm$/
:匹配 Elm 文件。use: { loader: 'elm-webpack-loader', options: { debug: true } }
:使用elm-webpack-loader
处理 Elm 文件。
- `plugins: [ new