New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

lavas-core-vue

Package Overview
Dependencies
Maintainers
2
Versions
75
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

lavas-core-vue

Lavas core implemented by Vue

  • 1.2.5
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
32
increased by23.08%
Maintainers
2
Weekly downloads
 
Created
Source

Lavas Core Vue

Lavas Core 是 Lavas 解决方案的核心部分,目前支持 Vue 。后续我们会陆续支持 ReactSan,给开发者提供更多选择,敬请期待。

常规情况下,开发者应当使用 Lavas 命令行进行开发和构建。这种最常用的方式可参考我们的官方文档Codelab

以编程方式使用 Lavas Core

出于某些特定的偏好或者限制,如果开发者不希望通过命令行 (lavas dev 或者 lavas build) 启动 Lavas 项目,我们也允许开发者采用编程方式使用 Lavas。

启动开发环境

作用等同于 lavas dev

开发者可以参考项目根目录下的 server.dev.js

const LavasCore = require('lavas-core-vue');
const express = require('express');
const stoppable = require('stoppable');
const proxy = require('http-proxy-middleware');

/**
 * API Proxy Configuration
 *
 * @see https://github.com/chimurai/http-proxy-middleware
 * @type {Object}
 */
const proxyTable = {
    // proxy table example
    // '/api': {
    //     target: 'https://lavas.baidu.com',
    //     changeOrigin: true
    // }
};

let port = process.env.PORT || 3000;
// TODO: The only parameter indicates root path of Lavas project
let core = new LavasCore(__dirname);
let app;
let server;

process.env.NODE_ENV = 'development';

/**
 * start dev server
 */
function startDevServer() {


    app = express();
    core.build()
        .then(() => {
            // API Proxying during development
            Object.keys(proxyTable).forEach(pattern => {
                app.use(pattern, proxy(proxyTable[pattern]));
            });

            app.use(core.expressMiddleware());

            /**
             * server.close() only stop accepting new connections,
             * we need to close existing connections with help of stoppable
             */
            server = stoppable(app.listen(port, () => {
                console.log('server started at localhost:' + port);
            }));
        })
        .catch(err => {
            console.log(err);
        });
}

/**
 * every time lavas rebuild, stop current server first and restart
 */
core.on('rebuild', () => {
    core.close().then(() => {
        server.stop();
        startDevServer();
    });
});

core.init(process.env.NODE_ENV || 'development', true)
    .then(() => startDevServer());

// catch promise error
process.on('unhandledRejection', err => {
    console.warn(err);
});

进行项目构建

作用等同于 lavas build

如果开发者启动过开发环境,可以参考 .lavas/build.js

const LavasCore = require('lavas-core-vue');
// TODO: The only parameter indicates root path of Lavas project
let core = new LavasCore(__dirname);

process.env.NODE_ENV = 'production';

async function startBuild() {
    await core.init(process.env.NODE_ENV, true);
    await core.build();
}

startBuild();

更多信息

经过实例化的 Lavas Core 对象(上述代码中均为变量 core ) 包含下列(值得开发者关心的)方法:

  • core.init()
  • core.build()
  • core.expressMiddleware()
  • core.koaMiddleware()

Lavas 默认集成了多个中间件,例如处理静态文件、处理 Lavas 本身的路由、处理 Service Worker 相关等等。

如果开发者想要更灵活地使用 core 提供的方法,例如选择性地使用某些中间件,或者调整中间件的顺序,插入自己的中间件等等,可以参阅这篇文档这篇 Codelab 加深理解。

Keywords

FAQs

Package last updated on 18 Jul 2019

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc