Slide 32
Slide 32 text
{
"name": “my-project",
"version": "1.0.0",
"main": "index.js",
"scripts": {
"build": “node ./bin/build.js”
},
"dependencies": {
"@cycle/dom": "^17.3.0",
"@cycle/run": "^3.1.0",
"@cycle/rxjs-run": “^7.0.0",
"ramda": "^0.24.1",
"rxjs": "^5.4.0",
"xstream": "^10.8.0"
},
"devDependencies": {
"browser-sync": "^2.18.11",
"browserify": "^14.3.0",
"connect-modrewrite": "^0.10.1",
"pug": "^2.0.0-rc.1",
"pug-cli": "^1.0.0-alpha6",
"stylus": "^0.54.5",
"tsify": "^3.0.1",
"typescript": "^2.3.2",
"watchify": "^3.9.0"
}
}
package.json
// Compile Pug sources
execSync(`pug src/templates -o public -w`);
// Compile Stylus sources
execSync(`stylus src/styles/style.styl -o public/assets/style.css`);
// Compile TypeScript sources
let b = browserify({
entries: ['./src/scripts/main.ts'],
cache: {},
packageCache: {},
plugin: [watchify],
debug: true
})
.plugin(tsify);
b.on('update', bundle)
bundle();
function bundle() {
b.bundle().on('error', (err) => {
console.log(err.message);
}).pipe(fs.createWriteStream('./public/assets/main.js'));
}
// Run Server
browserSync.create().init({
files: ['public'],
server: {
baseDir: ['public']
},
startPath: '/',
reloadDebounce: 500
});
build.js