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

generator-bksx

v1.0.91

Published

北控三兴web前端生成器

Downloads

24

Readme

北控三兴信息技术有限公司web前端框架

说明

本框架是北控三兴web前端框架,本框架可以生成2套代码,集成了bootstrap3.3.7,和jquery1.9.1,模版使用了artTemplate,其中libs文件下有bksxTool.js,主要是对一些常用方法进行封装(包括请求,分页,验证)

  • 由webpack2.x构建的多页面应用
  • 是由gulp构建兼容ie8的多页面应用

安装

npm install gulp yo generator-bksx -g

使用webpack2.x构建步骤

  • 在要创建项目的目录下执行yo bksx,会生成相应的项目结构
├─app ---- 存放项目原文件
│  ├─css ---- 存放样式文件 
│  ├─dll ---- 存放常用的包文件和不修改的文件
│  │  └─fonts
│  ├─images ---- 存放项目图片
│  ├─pages ---- 存放项目页面
│  │  ├─mk1 ---- 模块文件  ---- 每个模块里面至少有个page.html和page.js
│  │  └─mk2 ---- 模块文件  ---- 每个模块里面至少有个page.html和page.js
│  ├─public ---- 存放项目的公共代码
│  └─script ---- 存放js文件
├─libs ---- 存放不用npm安装的第三方包
├─bin ---- 存放项目打包之后的文件
└─webpack-config ---- webpack配置文件
    └─base
  • 像以前的方式写代码,因为打包之后没有pages文件夹,在页面中有页面跳转的连接或js连接,css连接请注意。图片可以直接以开发文件地址写

  • 本框架集成了bootstrap和jquery,如果不喜欢这样的搭配方式,可以修改otherLib.js文件,然后执行npm run dll(只要修改了otherLib.js,请执行npm run dll),这个配置会生成相应的文件,那么引用相应资源时,请在页面采用连接的方式引用,就别使用require或import方式了

//otherLib.js
module.exports = {
    dll:[
            'jquery',
            'bootstrapjs',
            'bootstrapcss',
            'paginationcss',
            'bootstrapfontEot',
            'bootstrapfontSvg',
            'bootstrapfontTtf',
            'bootstrapfontWof',
            'bootstrapfontWof2'
        ]

}
/**
 *说明:此文件导出的是一个对象,其中有dll属性,dll属性值是一个数组
 *执行npm run dll命令将jquery和bootstrap和分页插件的样式文件进行合并
 *otherLib.js主要将一些使用频率较高,不改动的文件进行合并,引用资源时在页面以链
 *接的形式引用,此目的是为了解决打包速度慢,打包文件过大
 *
*/

注意:第三方包css禁止以require或import方式引用,js文件看你们方便,配置方法如下

//otherLib.js
module.exports = {
    dll:[
            'jquery',
            'bootstrapjs',
            'bootstrapcss',
            'paginationcss',
            'bootstrapfontEot',
            'bootstrapfontSvg',
            'bootstrapfontTtf',
            'bootstrapfontWof',
            'bootstrapfontWof2'
        ],
    other:[
        'xxx.css',
        'xxx.js'
    ]
}

修改otherLib.js后,执行npm run dll 执行命令之后会在dll文件夹下生成other.js和other.css
如果要引用xxx.css或者xxx.js 页面代码如下

<!DOCTYPE html>
<html>
<head>
    <title></title>
    <script type="text/javascript" src="/dll/other.js"></script>
    <link rel="stylesheet" type="text/css" href="/dll/other.css">
</head>
<body>
</body>
</html>
  • libsmap.js说明
var path = require('path');
var nodeModules = path.resolve(process.cwd(),'./node_modules');
var css = path.resolve(process.cwd(),'./app/css/');
var script = path.resolve(process.cwd(),'./app/script/');
var images = path.resolve(process.cwd(),'./app/images/');
var libs = path.resolve(process.cwd(),'./libs/');
const libsmap = {
    css:css,
    script:script,
    images:images,
    libs:libs,
    jquery:path.resolve(nodeModules,'./jquery/dist/jquery.min.js'),
    bootstrapcss:path.resolve(nodeModules,'./bootstrap/dist/css/bootstrap.min.css'),
    bootstrapjs:path.resolve(nodeModules,'./bootstrap/dist/js/bootstrap.min.js'),
    bootstrapfontEot:path.resolve(nodeModules,'./bootstrap/dist/fonts/glyphicons-halflings-regular.eot'),
    bootstrapfontSvg:path.resolve(nodeModules,'./bootstrap/dist/fonts/glyphicons-halflings-regular.svg'),
    bootstrapfontTtf:path.resolve(nodeModules,'./bootstrap/dist/fonts/glyphicons-halflings-regular.ttf'),
    bootstrapfontWof:path.resolve(nodeModules,'./bootstrap/dist/fonts/glyphicons-halflings-regular.woff'),
    bootstrapfontWof2:path.resolve(nodeModules,'./bootstrap/dist/fonts/glyphicons-halflings-regular.woff2'),
    template:path.resolve(nodeModules,'./art-template/dist/template-native.js'),
    paginationjs:path.resolve(nodeModules,'./paginationjs/dist/pagination.min.js'),
    paginationcss:path.resolve(nodeModules,'./paginationjs/dist/pagination.css'),
}
module.exports = libsmap;

libsmap对象中可以配置属性名和值自己可搭配 如果你要引用jquery文件

//正常引用是
var $ = require('~./node-module/jquery/dist/jquery.min.js')

如果你想这样写

var $ = require('jquery')

在libsmap.js配置jquery的路径 其中nodeModule变量是你计算机的绝对路径到你项目的node_modules,其他的变量什么意思请自行想象,如果不明白请联系软件设计部前端人员

  • webpack-config/derServer.config.js说明
const path = require('path');
module.exports = {
    contentBase: path.resolve(__dirname, './bin/'),
    compress: true,
    port: 9000,
    hot:true,
    inline: true,
    host:'127.0.0.1'
    proxy:{
        "/api":{
            target:"http://130.10.9.126:8080",
            changeOrigin: true,
            secure: false
        }
    }
};

此文件是服务配置 可修改port,host,proxy属性,其他选项禁止修改,如有修改发生问题请自行解决(美特斯邦威,不走寻常路,我敬你是条汉子)

proxy跨域可以跨多个

const path = require('path');
module.exports = {
    contentBase: path.resolve(__dirname, './bin/'),
    compress: true,
    port: 9000,
    hot:true,
    inline: true,
    host:'127.0.0.1'
    proxy:{
        "/api":{
            target:"http://130.10.9.126:8080",
            changeOrigin: true,
            secure: false
        },
        "/other":{
            target:"http://130.10.9.127:8080",
            changeOrigin: true,
            secure: false
        }
    }
};
  • webpack-config/derServer.config.js说明
module.exports = 'http://127.0.0.1:9000/';

此文件特别注意,跟页面上的images地址和引用pages.js路径有关,配置出错会出现404的错误 发布生产环境时,请询问外网地址

  • 代码编写完之后,执行npm run build 然后执行npm run server,访问项目地址,默认项目端口号是9000,可以在webpack-config文件夹下的devServer.config.js进行修改,本框架式热启动,修改文件之后刷新浏览器即可,不需重启服务,但是最后版本发布文件,请再次执行npm run build

  • 在开发项目中可以使用yo bksx:page 参数命令,此命令是生成模块文件,参数是文件夹的名字,执行命令之后会在app/pages文件下生成相应的文件夹目录结构,其中有两个文件page.htmlpage.js

yo bksx:page mk3/cmk1

会在项目app/pages 文件下生成mk3文件夹mk3文件包含cmk1文件夹cmk1文件下有page.htmlpage.js

yo bksx:page mk3

会在项目app/pages 文件下生成mk4文件夹 里面包含 page.htmlpage.js

如果要一些奇怪的文件夹结构请发觉上面两个例子的区别,如不明白请联系软件设计部人员

  • 在开发项目中可以使用yo bksx:data 参数命令,此命令是在相应文件下(page.js)生成请求代码
$.ajax({
    url: '',
    type:'',
    data:'',
    success:function(){
    },
    error:function(jqXHR,textStatus,errorThrown){
    }
});

mk4文件夹下的page.js文件里面 会多出生成的代码

  • 执行npm run analyse 可以查看各个模块文件打包之前和打包之后的大小和gzip的大小

使用gulp构建步骤

  • 在要创建项目的目录下执行yo bksx:ie8,会生成相应的项目结构
  • 然后正常开发

查看版本(线上最新版本为1.0.92)

bksx 返回本地版本