增加了对使用npm/yarn在lektor中构建资产的支持

lektor-npm-support的Python项目详细描述


莱克托NPM支持

Build StatusBuild statusCode Coverage

lektor-npm-support使使用Parcelwebpackbrowserify或任何其他工具为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_scriptlektor 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添加包裹,BabelSass

$ 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插件。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java将字符串拆分为带关键字的部分   删除数据库后未指定java数据源问题“url”属性   网络化java多人游戏连接   Java当新字符串等于旧字符串时,为什么substring()不创建新对象?   一个实例到多个bean的java注入   JavaSpringMVC验证错误消息   java总结if语句,并从另一个对象(如字符串[])读取if条件(动态if)   需要多个输入的Java IF语句   jsf如何选择正确的bean范围?   java将数据库值加载到组合框JSP,Hibernate   一次活动中的java 3布局   团队和球员反对Java的困难   java ActionListener如何知道按下了哪个按钮?