Package Exports
- @marko/build
- @marko/build/dist/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@marko/build) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
@marko/build
Utility to build a node server from a marko file
CLI
Getting Started
npm install @marko/build
marko-build .
or
npx @marko/build .
Example
marko-build .
marko-build ./my-page.marko
Options
--output -o
: Where to write the build--static
: Build static HTML files instead of a node server
Config overrides
While @marko/build
works out-of-the box without any config, it does allow customizing and extending the default config for unique use-cases.
Webpack
NOTE:
@marko/build
currently uses webpack to build projects, however, this may change in the future so it's recommended to avoid using a custom webpack config if possible.
In the most extreme case, you can use a custom webpack.config.js
. This config file is discovered based on the entry that is passed to the cli command, but given that it's a standalone config file, you can use webpack
directly to build your project as well.
To help configure webpack, @marko/build
exports a configBuilder
function that allows you to use the base config, while adding your own customizations.
Example
webpack.config.js
import path from "path";
import { configBuilder } from "@marko/build";
import MyPlugin from "my-plugin";
const { getServerConfig, getBrowserConfigs } = configBuilder({
entry: path.join(__dirname, "target.marko"),
production: process.env.NODE_ENV === "production"
});
module.exports = [
...getBrowserConfigs(config => {
config.plugins.push(new MyPlugin());
return config;
}),
getServerConfig(config => {
config.plugins.push(new MyPlugin());
return config;
})
];
API
Installation
npm install @marko/build
configBuilder
Returns 3 functions: getServerConfig
, getBrowserConfig
, and getBrowserConfigs
.
Options
entry
- the marko file to buildoutput
- where to write the buildproduction
- whether to build in production mode
loadWebpackConfig
Loads a custom webpack.config.js
or creates a default array of compiler configs.
Options
entry
- the marko file to buildoutput
- where to write the buildproduction
- whether to build in production mode