增加了对使用npm/yarn在lektor中构建资产的支持
lektor-npm-support的Python项目详细描述
莱克托NPM支持
lektor-npm-support
使使用Parcel、webpack、browserify或任何其他工具为Lektor项目构建资产变得容易。
启用插件
要启用插件,请在Lektor项目目录内运行此命令:
lektor plugins add lektor-npm-support
示例:创建Parcel项目
创建一个parcel/
文件夹,在该文件夹中创建以下文件:
configs/npm-support.ini
此文件指示插件如何生成资产:
[parcel]npm=yarnwatch_script=watchbuild_script=build
- 节名
[parcel]
是包项目所在文件夹的名称。 npm
是用于生成项目的包管理器命令。这个例子将使用Yarn。watch_script
是在lektor server -f npm
, 中使用的npm脚本。
build_script
是lektor build -f npm
中使用的npm脚本。
这个插件支持多个这样的条目。
parcel/package.json
这是一个标准的package.json
文件。它应该包含scripts
部分中的两个条目。在lektor build -f npm
期间使用build
脚本,在lektor server -f npm
期间使用watch
脚本。
{"name":"my-parcel-project","version":"1.0.0","scripts":{"watch":"NODE_ENV=development parcel --out-dir=../assets/static/gen --out-file=main.js --public-url=./assets/ main.js","build":"NODE_ENV=production parcel build --out-dir=../assets/static/gen --out-file=main.js --public-url=./assets/ main.js"},"private":true}
现在我们可以使用yarn add
添加包裹,Babel和Sass:
$ cd </path/to/your/lektor/project>/parcel
$ yarn add parcel-bundler babel-preset-env node-sass
parcel/babelr.rc
接下来是一个简单的babel配置文件,使用推荐的env
预置。
{"presets":["env"]}
parcel/main.scss
一个简单的scss文件。
body{border:10pxsolidred;}
parcel/main.js
一个简单的javascript文件,用于导入scss文件,以便包也知道包含它。
import'./main.scss';
运行服务器
现在你可以走了。当你运行lektor server
时,什么都不会发生,
相反,您现在需要将它作为lektor server -f npm
运行
将启用地块生成。包将自动生成您的文件
进入assets/static/gen
这是莱克托接电话的地方
文件夹。这样做是为了您可以运送生成的资产
对于可能没有这些工具的其他人,这简化了使用
使用此插件的Lektor网站。
手动生成
要手动触发同时调用webpack的生成,可以使用lektor build -f npm
。
包括文件
现在需要在模板中包含这些文件。这样做:
<linkrel="stylesheet"href="{{ '/static/gen/main.css'| asseturl }}"><scripttype=text/javascriptsrc="{{ '/static/gen/main.js'| asseturl }}"charset="utf-8"></script>
完成工作示例
此存储库的examples
文件夹包含工作项目。
学分
此插件基于Armin Ronacher的官方lektor-webpack-supportlektor插件。