我刚开始研究使用fabric.js,但是我发现非常少的资源来说明如何在我的网站上安装它。我只能找到一个stackoverflow问题,其中引用了文件“all.min.js”,但是在对未压缩的文件进行快速搜索后,该文件已不存在。
我在过去几个小时里搜遍了互联网,看起来这应该是人尽皆知的!但我仍然卡住了。
我应该在HTML中链接哪个文件?
编辑:为了澄清,我从fabric.js的github上下载了一个大型ZIP文件。我不确定应该链接哪个文件以包含库。
我刚开始研究使用fabric.js,但是我发现非常少的资源来说明如何在我的网站上安装它。我只能找到一个stackoverflow问题,其中引用了文件“all.min.js”,但是在对未压缩的文件进行快速搜索后,该文件已不存在。
我在过去几个小时里搜遍了互联网,看起来这应该是人尽皆知的!但我仍然卡住了。
我应该在HTML中链接哪个文件?
编辑:为了澄清,我从fabric.js的github上下载了一个大型ZIP文件。我不确定应该链接哪个文件以包含库。
自从我写下面的答案以来,情况有所改善,使用 ES6-Modules 和 vite 变得更加容易。
ES6 模块的更改很简单。只需将以下补丁应用到 index.html
文件中:
--- index.html.old 2023-07-19 20:06:57.824477914 +0200
+++ index.html 2023-07-19 19:56:13.651532983 +0200
@@ -11,7 +11,7 @@
height="400"
style="border:1px solid #000000;">
</canvas>
- <script src="main.js"></script>
+ <script type="module" src="main.js"></script>
</body>
</html>
vite
,安装它而不是 webpack
,使用以下命令:npm install --save-dev vite
./node_modules/.bin/vite serve
./node_module/.bin/vite build
由于这些命令繁琐,可以将它们添加到package.json
中:
{
...
"scripts": {
"serve": "vite serve",
"build": "vite build"
},
...
}
然后你可以直接运行npm run build
或npm run serve
fabric.js
不需要提交到版本控制git clone <url>
和npm install
,因为所有依赖项都在package.json
中npm update
即可这假设...
>= 5.2
(如果我没记错的话,这是 webpack 所需要的)。npm
和 webpack
命令。$HOME/.local/bin
注意:如果您已经安装了 npm
,则无需以超级用户/根用户身份访问系统。
首先,初始化一个新的 npm 项目:
mkdir my-fabric-project
cd my-fabric-project
npm init -y
npm install webpack webpack-cli --save-dev
fabricjs
,因为这是我们项目的依赖项。npm install --save fabric
.
├── node_modules
| ├...
| └── ...
├── dist
├── package-lock.json
├── package.json
└── src
2 directories, 2 files
dist
文件夹中创建一个名为index.html
的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
,要么从控制台运行一个迷你Web服务器进行测试:(cd dist && python3 -m http.server)
就是这样!
这将帮助您开始项目,并利用webpack的强大功能轻松拆分代码。祝您好运并玩得开心!
当运行webpack
时,dist/main.js
和src/index.js
是默认的文件名。
webpack
默认会在dist/main.js
中创建压缩代码。这是因为它默认以"production"模式运行。要更改此设置,请创建一个名为webpack.config.js
的文件,并包含以下内容:
module.exports = {
mode: 'development'
};
您可以使用以下命令来运行它:
npx webpack --config webpack.config.js
你只需要从这里下载 fabric.js 并将其保存为名为 fabric.js
的 js 文件,然后创建一个名为 index.html
的 html 文件并复制以下内容。
要运行此示例,这两个文件 fabric.js
和 index.html
应该放在同一个文件夹中。
<html>
<head>
<script src="fabric.js"></script>
</head>
<body>
<canvas id="canvas" width="800" height="450" style="border:1px solid #000000"></canvas>
<script>
var canvas = new fabric.Canvas('canvas');
canvas.add(new fabric.Circle({ radius: 30, fill: '#f55', top: 100, left: 100 }));
canvas.selectionColor = 'rgba(0,255,0,0.3)';
canvas.selectionBorderColor = 'red';
canvas.selectionLineWidth = 5;
</script>
</body>
</html>
选项
您可以从这里以任何格式下载fabric.js
Fabric遵循传统的分布式布局。
你需要使用 dist
目录中的文件。fabric.js
用于开发工作,fabric.min.js
用于实际网站。