Socket
Socket
Sign inDemoInstall

hyoo_artist

Package Overview
Dependencies
101
Maintainers
1
Versions
2
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    hyoo_artist

**M**am owns language-**A**gnostic **M**odules. This is base **MAM** project.


Version published
Weekly downloads
2
Maintainers
1
Install size
9.34 MB
Created
Weekly downloads
 

Readme

Source

MAM

Mam owns language-Agnostic Modules. This is base MAM project.

Articles

  • MAM: сборка фронтенда без боли
  • Step-by-step tutorial

Features

  • Agnostic modules. Module is directory with mixed source files (JS, TS, CSS, JSON, HTML, Tree, images etc).
  • Automatic dependency tracking. You don't need import/export - simply use namespaced names in accordance to directory structure, like $mol_button_major / $jin.time.moment in *.JAM.JS/*.TS or --mol_theme_back / [mol_page_title] / .my-header-avatar in *.CSS.
  • Development server with automatic bundling on request. Only if you use it then it will have bundled.
  • Build any module as standalone bundle. You can develope thousand of modules in one project.
  • Cordova project generation. Simply add config.xml to module and -cordova dir with cordova project will have generated.

Cloud usage

Gitpod Online Dev Workspace

Installation

Checkout this repo (~2s):

git clone https://github.com/hyoo-ru/mam.git ./mam && cd mam

Linux limits

$mol_build and typescript uses inotify by default on Linux to monitor directories for changes. It's not uncommon to encounter a system limit on the number of files you can monitor.

/etc/sysctl.d/20-watch.conf

fs.inotify.max_user_watches=524288
fs.file-max=500000

Development server

Install node modules and build dev server from actual sources

npm install

Start dev server:

npm start

Open simple $mol based ToDoMVC application:

start http://localhost:9080/hyoo/todomvc/-/test.html

Manual build

  • Execute npm start hyoo/todomvc to build standalone ToDoMVC application at hyoo/todomvc/-.
  • Execute npm start mol/regexp to build standalone $mol_regexp library at mol/regexp/-.

NPM Integration

Publish to NPM

npm start mol/regexp
npm publish mol/regexp/-

Usage from NPM

Import to CJS

const { $mol_regexp: RE } = require( 'mol_regexp' )

Import to ESM

import { $mol_regexp as RE } from 'mol_regexp'

NodeJS dependencies

Using $node namespace you can auto-install and dynamically lazy load any NPM packages:

const isOdd = $node['is-odd']( '123' )

Bundling NPM dependencies

It's better to use implementations from MAM ecosystem. But you can bundle NPM packages too through adapter like:

// lib/ramda/ramda.ts
namespace $ {
	export let $lib_ramda = require('ramda/src/index.js') as typeof import('ramda')
}

Custom package

Video tutorial

  1. Create dir for your namespace. my in example.
  2. Create dir for your module. my/alert in example.
  3. Create module source file. my/alert/alert.ts with content function $my_alert( msg : string ) { alert( msg ) } in example.
  4. Create dir for your application module. my/app in example.
  5. Create application source file. my/app/app.ts with content $my_alert( 'Hello, World!' ) in example.
  6. Create application web entry point. my/app/index.html with content <script src="-/web.js"></script> in example.
  7. Start development server: npm start
  8. Open your application. http://localhost:9080/my/app/-/test.html in example.

MAM based projects

Keywords

FAQs

Last updated on 25 Feb 2023

Did you know?

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

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc