使用 webpack 的更现代的 fabric.js hello-world(2018 年状态)
这种方法的优点
-
fabric.js 不需要提交版本控制
- 鉴于所有依赖项都在
package.json 中,只需两个命令即可从头开始运行您的项目:git clone <url> 和 npm install
- 更新到最新的 Fabric 版本就像运行
npm update 一样简单
- 不仅fabricjs代码,你自己的代码也会被缩小。
- 它还为您提供 webpack 提供的所有其他好东西
假设
这假设...
- ...你有 NPM
>= 5.2(如果我没记错的话,这是 webpack 需要的)。
- ...您有权访问 CLI shell 以运行
npm 和 webpack 命令。
- ... npm 二进制文件在您的路径上。默认情况下:
$HOME/.local/bin 在 *nix 系统上
注意:如果您已有npm 可用,您将不需要对系统的超级用户/root 访问权限。
准备工作
首先,初始化一个新的npm项目:
mkdir my-fabric-project
cd my-fabric-project
npm init -y
然后将 webpack 安装到该文件夹中(我们稍后会用到):
npm install webpack webpack-cli --save-dev
另外,安装fabricjs,因为这是我们项目的依赖项:
npm install --save fabric
上面的两个 npm install 命令将填充我们的 package.json 文件,其中包含生产 (fabricjs) 和开发 (webpack & webpack-cli) 依赖项。
注意:在安装 webpack 时,我在撰写本文时收到了有关 cairo 的错误。但似乎它们是无害的。 cairo 是一个图形库,我认为仅当您想在 nodejs 进程中运行 fabricjs 时才需要它。浏览器已经能够渲染图形,所以在客户端代码中运行fabricjs 时,这不是问题。否则,您可能需要安装所需的标头。我假设(未经测试)这个错误可以通过在基于 debian 的系统上安装包 libcairo-dev 来解决。
代码
现在我们已经准备好开始编码了。
创建两个文件夹src和dist,这样我们的源码树就变成了:
.
├── node_modules
| ├...
| └── ...
├── dist
├── package-lock.json
├── package.json
└── src
2 directories, 2 files
在dist 文件夹内创建一个HTML 文件index.html,其内容如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Hello World FabricJS</title>
</head>
<body>
<canvas
id="myCanvas"
width="400"
height="400"
style="border:1px solid #000000;">
</canvas>
<script src="main.js"></script>
</body>
</html>
还有一个位于src 文件夹中的javascript index.js,内容如下:
import {fabric} from 'fabric';
function run() {
let canvas = new fabric.Canvas('myCanvas');
let rect = new fabric.Rect({
left: 100,
top: 100,
fill: 'red',
width: 20,
height: 20
});
canvas.add(rect);
}
run();
这将为我们提供以下目录结构:
.
├── node_modules
| ├...
| └── ...
├── dist
│ └── index.html
├── package-lock.json
├── package.json
└── src
└── index.js
2 directories, 5 files
您可能会注意到dist/index.html 引用了一个名为main.js 的文件,该文件不存在。我们需要运行webpack 来创建它:
npx webpack
您的代码现在应该可以工作了。要么手动打开dist/index.html,要么从控制台运行一个迷你网络服务器进行测试:
(cd dist && python3 -m http.server)
就是这样!
这应该可以帮助您开始您的项目,还可以让您利用 webpack 的强大功能轻松拆分代码。祝你好运,玩得开心!
很高兴知道
-
dist/main.js 和 src/index.js 是在没有配置的情况下运行 webpack 时的默认文件名
-
webpack 默认会在dist/main.js 中创建缩小代码。这是因为它默认以“生产”模式运行。要更改此设置,请创建一个名为 webpack.config.js 的文件,其内容如下:
module.exports = {
mode: 'development'
};
你可以使用它运行:
npx webpack --config webpack.config.js