npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

art-html-loader

v0.1.2

Published

art-html-loader是一个webpack loader,用于art-templete模板文件的编译。

Downloads

1

Readme

art-html-loader

art-html-loader是一个webpack loaders,用于art-templete模板文件的编译,特别用于需要将其直接输出为html的项目。

Install

$ npm install art-html-loader

Demo

  • test文件中是一个简单的demo,其编译的文件可以查阅test_dist中的文件内容
  • webpack.config.js的配置可以参考config/webpack.test.js 文件,为了方便测试使用的本地loader,请自行将其更改为npm线上loader包即可

Usage

用法可请直接参考test

  • webpack.config.js
module.exports = {
  module: {
    rules: [
      {
        test: /\.(png|svg|jpg|gif)$/,
        use: [{
          loader: 'file-loader',
          options: {
            esModule: false
          },
        }]
      }, {
        test: /\.arthtml$/,
        exclude: /node_modules/,
        use: [
          // 分别打包并生成html文件
          {
            loader: 'file-loader',
            options: {
              name: '[name].html'
            }
          },

          // 识别html中的路径,并保证他们合法
          'extract-loader',

          // 修改html中静态资源的路径为require,以便于'file-loader'进行路径重定向
          {
            loader: 'html-loader',
            options: {
              attrs: ['img:src', 'link:href']
            }
          },

          // 编译.arthtml文件为.html文件
          'art-html-loader'
        ]
      }
    ]
  }
}
  • .arthtml 文件

这是针对该loaders所有的文件扩展名,art-html-loader会使用art-templete将该文件编译成html文件 它的结构与vue类似,如下所示:

<template>
  <!--art 模板语法内容-->
</template>

<script>
  return {
    artHot: // 引入的art组件需要热更新的文件路径
    importData: // 引入用于art编译时提供的data数据,可以引入公用data
    data: {
      // 该页面定义的art编译时提供的data数据,会自动与importData引入的data进行合并
    },
    main: function (windows) {
      // 该页面的js逻辑,打包时会自动将其生成为自执行函数并传入windows,注入到body的script标签中
    }
  }
</script>

在vscode中开发的小伙伴,可以将语言模式配置成如下,便于开发时语言高亮显示:

"files.associations": {
  "*.art": "html",
  "*.arthtml": "html"
}

特别提醒:.arthtml文件主要用于需要将文件生成单独的html文件所用,其需要引用的组件部分,仍应为.art文件,详细可以参考test文件中的component内容。

这里要注意,在引用组件的时候,因为art options配置项会有一个root的配置,这里默认是src目录,因此在引用组件的时候'./'即代表root配置的目录,而静态资源如图片等是file-loader编译的,则需要根据其文件相对目录去引用。 如文件目录为:

  • views
    • index.arthtml
  • assets
    • test.jpg
  • component
    • header.art 那在引用test.jpg与组件header.art时应为:
{{include './component/header.art' data}}
<img src="../assets/test.jpg" />
  • 详解 .arthtml 文件 下的<script>...</script>

    • artHot? String | String[]

      • 由于引入的组件为art模板引擎的语法,因此引入组件并不会被热更新所获取,在开发时需要你想让引入的依赖组件实时热更新,那么就需要将其路径添加值该处,如果只有一个你可以直接写入路径字符串,如果是多个你可以将它们写成数组字符串。
    • importData? String | String[]

      • art模板引擎有一个数据对象,这里可以写入需要引用的数据对象的路径,如果只有一个你可以直接写入路径字符串,如果是多个你可以将它们写成数组字符串。它的可以用于共享数据的引入,比如你有很多页面都需要使用一个数据,就可以使用该项将文件引入到多个.arthtml文件中;或当数据太多,为了便于维护而直接引用一个文件。
    • data? Object

      • art模板引擎有一个数据对象,这里是该页面的数据对象,如果存在importData将与其合并,生成最终art文件的data,类似有私有数据,仅在该页面起作用。
    • main? Function

      • .arthtml页面的js逻辑,打包时会自动将其生成为自执行函数并传入windows,注入到body的script标签中。