express-vue-builder
Advanced tools
Comparing version 0.0.0 to 1.0.0
{ | ||
"name": "express-vue-builder", | ||
"version": "0.0.0", | ||
"main": "index.js", | ||
"version": "1.0.0", | ||
"description": "Vue.js server-side and client-side rendering middleware for Express.js.", | ||
"main": "./src/index.js", | ||
"ava": { | ||
"files": [ | ||
"./tests/*.js" | ||
], | ||
"concurrency": 1, | ||
"failFast": true | ||
}, | ||
"scripts": { | ||
"test": "echo \"Error: no test specified\" && exit 1" | ||
"test": "ava", | ||
"example:start": "node ./example/scripts/start.js", | ||
"example:build": "node ./example/scripts/build-client.js; node ./example/scripts/build-server.js" | ||
}, | ||
"keywords": [], | ||
"author": "", | ||
"license": "ISC", | ||
"description": "" | ||
"repository": { | ||
"type": "git", | ||
"url": "git+https://github.com/xpepermint/express-vue-builder.git" | ||
}, | ||
"bugs": { | ||
"url": "https://github.com/xpepermint/express-vue-builder/issues" | ||
}, | ||
"homepage": "https://github.com/xpepermint/express-vue-builder#readme", | ||
"keywords": [ | ||
"express", | ||
"connect", | ||
"vue", | ||
"webpack", | ||
"render", | ||
"rendering", | ||
"server", | ||
"client", | ||
"side", | ||
"ssr", | ||
"build", | ||
"building", | ||
"builder", | ||
"compile", | ||
"compiler", | ||
"dev-server" | ||
], | ||
"author": "Kristijan Sedlak (Xpepermint)", | ||
"license": "MIT", | ||
"devDependencies": { | ||
"ava": "0.16.0", | ||
"babel-core": "6.17.0", | ||
"babel-loader": "6.2.5", | ||
"babel-preset-es2015": "6.16.0", | ||
"babel-preset-stage-2": "6.17.0", | ||
"css-loader": "0.25.0", | ||
"express": "4.14.x", | ||
"extract-text-webpack-plugin": "2.0.0-beta.4", | ||
"file-loader": "0.9.0", | ||
"node-fetch": "1.6.3", | ||
"postcss-cssnext": "2.8.0", | ||
"vue": "2.0.3", | ||
"vue-builder": "1.1.0", | ||
"vue-loader": "9.7.0", | ||
"vue-server-renderer": "2.0.3", | ||
"vue-webpack": "1.3.5", | ||
"vuex": "2.0.0", | ||
"webpack": "2.1.0-beta.25", | ||
"webpack-hot-middleware": "2.13.0", | ||
"webpack-manifest-plugin": "1.1.0" | ||
}, | ||
"pearDependencies": { | ||
"vue-builder": "1.1.x", | ||
"webpack": "2.1.0-beta.25" | ||
}, | ||
"dependencies": { | ||
"webpack-dev-middleware": "1.8.x", | ||
"webpack-hot-middleware": "2.13.x" | ||
} | ||
} |
104
src/index.js
@@ -1,51 +0,65 @@ | ||
const {VueRenderer} = require('/Users/xpeper/Work/xpeper/nodejs/vue-renderer'); | ||
const fs = require('fs'); | ||
const webpack = require('webpack'); | ||
const webpackMiddleware = require('webpack-dev-middleware'); | ||
const {VueBuilder, VueRender} = require('vue-builder'); | ||
const webpackDevMiddleware = require('webpack-dev-middleware'); | ||
const webpackHotMiddleware = require('webpack-hot-middleware'); | ||
const webpackConfig = { | ||
entry: [ | ||
`webpack-hot-middleware/client?path=/__webpack_hmr&timeout=20000`, | ||
`./src/client/client-entry.js` | ||
], | ||
module: { | ||
loaders: [ | ||
{test: /\.vue$/, loader: 'vue'}, | ||
{test: /\.js$/, loader: 'babel', exclude: /node_modules/}, | ||
{test: /\.json$/, loader: 'json'} | ||
] | ||
}, | ||
output: { | ||
path: __dirname, | ||
filename: 'bundle.js' | ||
}, | ||
devtool: '#source-map', | ||
plugins: [ | ||
new webpack.DefinePlugin({ | ||
'process.env.NODE_ENV': JSON.stringify('development') | ||
/* | ||
* A function for merging middlewares into one. | ||
*/ | ||
function combine(mids) { | ||
return mids.reduce(function(a, b) { | ||
return function(req, res, next) { | ||
a(req, res, function(err) { | ||
if (err) { | ||
return next(err); | ||
} | ||
b(req, res, next); | ||
}); | ||
}; | ||
}); | ||
} | ||
/* | ||
* Vue.js development server middleware. | ||
*/ | ||
exports.devServer = function ({server, client, verbose=false}={}) { | ||
let clientConfig = Object.assign({}, client); | ||
let serverConfig = Object.assign({}, server); | ||
let clientCompiler = webpack(clientConfig); | ||
let serverBuilder = new VueBuilder(serverConfig); | ||
return combine([ | ||
webpackDevMiddleware(clientCompiler, { | ||
noInfo: !verbose, | ||
publicPath: clientCompiler.options.output.publicPath | ||
}), | ||
new webpack.HotModuleReplacementPlugin(), | ||
new webpack.NoErrorsPlugin() | ||
] | ||
webpackHotMiddleware(clientCompiler, { | ||
serverSideRender: false, | ||
historyApiFallback: true | ||
}), | ||
(req, res, next) => { | ||
serverBuilder.compile().then((source) => { | ||
req.vue = new VueRender({source}); | ||
next(); | ||
}); | ||
} | ||
]); | ||
} | ||
exports.createMiddleware = function(webpackConfig) { | ||
let compiler = webpack(webpackConfig); | ||
let renderer = new VueRenderer(compiler); | ||
/* | ||
* Vue.js rendering utils middleware. | ||
*/ | ||
return [ | ||
(req, res, next) => { | ||
req.vueRenderer = renderer; | ||
next(); | ||
}, | ||
require("webpack-dev-middleware")(compiler, { | ||
noInfo: true, | ||
publicPath: '/assets/' | ||
}), | ||
require("webpack-hot-middleware")(compiler, { | ||
log: console.log, | ||
path: '/__webpack_hmr', | ||
heartbeat: 10 * 1000 | ||
}) | ||
]; | ||
}; | ||
exports.bundleRenderer = function ({bundlePath}={}) { | ||
let source = fs.readFileSync(bundlePath, 'utf8'); | ||
let render = new VueRender({source}); | ||
return (req, res, next) => { | ||
req.vue = render; | ||
next(); | ||
}; | ||
} |
const test = require('ava'); | ||
const {echo} = require('../src'); | ||
const fetch = require('node-fetch'); | ||
const {createServer} = require('../example'); | ||
test('test', async (t) => { | ||
let server = null; | ||
test.cb.before((t) => { | ||
server = createServer('127.0.0.1', 3001, t.end); | ||
}); | ||
test.cb.after((t) => { | ||
server.close(t.end); | ||
}); | ||
test.cb.serial('should render server-side', (t) => { | ||
t.pass(); | ||
fetch('http://127.0.0.1:3001').then((res) => { | ||
return res.text().then((txt) => { | ||
t.is(txt.indexOf('server-rendered="true"') > 0, true); | ||
t.is(txt.indexOf('Hello World!') > 0, true); | ||
t.end(); | ||
}); | ||
}).catch((err) => { | ||
t.fail(); | ||
t.end(); | ||
}) | ||
}); |
Sorry, the diff of this file is not supported yet
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
Network access
Supply chain riskThis module accesses the network.
Found 1 instance in 1 package
Environment variable access
Supply chain riskPackage accesses environment variables, which may be a sign of credential stuffing or data theft.
Found 1 instance in 1 package
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 1 instance in 1 package
No contributors or author data
MaintenancePackage does not specify a list of contributors or an author in package.json.
Found 1 instance in 1 package
No bug tracker
MaintenancePackage does not have a linked bug tracker in package.json.
Found 1 instance in 1 package
No repository
Supply chain riskPackage does not have a linked source code repository. Without this field, a package will have no reference to the location of the source code use to generate the package.
Found 1 instance in 1 package
No tests
QualityPackage does not have any tests. This is a strong signal of a poorly maintained or low quality package.
Found 1 instance in 1 package
No v1
QualityPackage is not semver >=1. This means it is not stable and does not support ^ ranges.
Found 1 instance in 1 package
No website
QualityPackage does not have a website.
Found 1 instance in 1 package
72916
20
192
1
0
101
2
20
4
2
+ Addedwebpack-dev-middleware@1.8.x
+ Addedacorn@4.0.135.7.4(transitive)
+ Addedacorn-dynamic-import@2.0.2(transitive)
+ Addedajv@4.11.8(transitive)
+ Addedajv-keywords@1.5.1(transitive)
+ Addedalign-text@0.1.4(transitive)
+ Addedansi-html@0.0.6(transitive)
+ Addedansi-regex@2.1.1(transitive)
+ Addedanymatch@2.0.03.1.3(transitive)
+ Addedarr-diff@4.0.0(transitive)
+ Addedarr-flatten@1.1.0(transitive)
+ Addedarr-union@3.1.0(transitive)
+ Addedarray-unique@0.3.2(transitive)
+ Addedasn1.js@4.10.1(transitive)
+ Addedassert@1.5.1(transitive)
+ Addedassign-symbols@1.0.0(transitive)
+ Addedasync@2.6.4(transitive)
+ Addedasync-each@1.0.6(transitive)
+ Addedatob@2.1.2(transitive)
+ Addedbase@0.11.2(transitive)
+ Addedbase64-js@1.5.1(transitive)
+ Addedbig.js@3.2.0(transitive)
+ Addedbinary-extensions@1.13.12.3.0(transitive)
+ Addedbindings@1.5.0(transitive)
+ Addedbn.js@4.12.15.2.1(transitive)
+ Addedbraces@2.3.23.0.3(transitive)
+ Addedbrorand@1.1.0(transitive)
+ Addedbrowserify-aes@1.2.0(transitive)
+ Addedbrowserify-cipher@1.0.1(transitive)
+ Addedbrowserify-des@1.0.2(transitive)
+ Addedbrowserify-rsa@4.1.1(transitive)
+ Addedbrowserify-sign@4.2.3(transitive)
+ Addedbrowserify-zlib@0.2.0(transitive)
+ Addedbuffer@4.9.2(transitive)
+ Addedbuffer-xor@1.0.3(transitive)
+ Addedbuiltin-status-codes@3.0.0(transitive)
+ Addedcache-base@1.0.1(transitive)
+ Addedcall-bind@1.0.8(transitive)
+ Addedcall-bind-apply-helpers@1.0.2(transitive)
+ Addedcall-bound@1.0.3(transitive)
+ Addedcamelcase@1.2.13.0.0(transitive)
+ Addedcenter-align@0.1.3(transitive)
+ Addedchokidar@2.1.83.6.0(transitive)
+ Addedcipher-base@1.0.6(transitive)
+ Addedclass-utils@0.3.6(transitive)
+ Addedcliui@2.1.03.2.0(transitive)
+ Addedco@4.6.0(transitive)
+ Addedcode-point-at@1.1.0(transitive)
+ Addedcollection-visit@1.0.0(transitive)
+ Addedcomponent-emitter@1.3.1(transitive)
+ Addedconsole-browserify@1.2.0(transitive)
+ Addedconstants-browserify@1.0.0(transitive)
+ Addedcopy-descriptor@0.1.1(transitive)
+ Addedcore-util-is@1.0.3(transitive)
+ Addedcreate-ecdh@4.0.4(transitive)
+ Addedcreate-hash@1.2.0(transitive)
+ Addedcreate-hmac@1.1.7(transitive)
+ Addedcrypto-browserify@3.12.1(transitive)
+ Addeddebug@2.6.9(transitive)
+ Addeddecamelize@1.2.0(transitive)
+ Addeddecode-uri-component@0.2.2(transitive)
+ Addeddefine-data-property@1.1.4(transitive)
+ Addeddefine-properties@1.2.1(transitive)
+ Addeddefine-property@0.2.51.0.02.0.2(transitive)
+ Addeddes.js@1.1.0(transitive)
+ Addeddiffie-hellman@5.0.3(transitive)
+ Addeddomain-browser@1.2.0(transitive)
+ Addeddunder-proto@1.0.1(transitive)
+ Addedelliptic@6.6.1(transitive)
+ Addedemojis-list@2.1.0(transitive)
+ Addedenhanced-resolve@3.4.1(transitive)
+ Addederrno@0.1.8(transitive)
+ Addederror-ex@1.3.2(transitive)
+ Addedes-define-property@1.0.1(transitive)
+ Addedes-errors@1.3.0(transitive)
+ Addedes-object-atoms@1.1.1(transitive)
+ Addedevents@3.3.0(transitive)
+ Addedevp_bytestokey@1.0.3(transitive)
+ Addedexpand-brackets@2.1.4(transitive)
+ Addedextend-shallow@2.0.13.0.2(transitive)
+ Addedextglob@2.0.4(transitive)
+ Addedfile-uri-to-path@1.0.0(transitive)
+ Addedfill-range@4.0.07.1.1(transitive)
+ Addedfind-up@1.1.2(transitive)
+ Addedfor-in@1.0.2(transitive)
+ Addedfragment-cache@0.2.1(transitive)
+ Addedfsevents@1.2.132.3.3(transitive)
+ Addedfunction-bind@1.1.2(transitive)
+ Addedget-caller-file@1.0.3(transitive)
+ Addedget-intrinsic@1.2.7(transitive)
+ Addedget-proto@1.0.1(transitive)
+ Addedget-value@2.0.6(transitive)
+ Addedglob-parent@3.1.05.1.2(transitive)
+ Addedgopd@1.2.0(transitive)
+ Addedgraceful-fs@4.2.11(transitive)
+ Addedhas-flag@1.0.0(transitive)
+ Addedhas-property-descriptors@1.0.2(transitive)
+ Addedhas-symbols@1.1.0(transitive)
+ Addedhas-value@0.3.11.0.0(transitive)
+ Addedhas-values@0.1.41.0.0(transitive)
+ Addedhash-base@3.0.5(transitive)
+ Addedhash.js@1.1.7(transitive)
+ Addedhasown@2.0.2(transitive)
+ Addedhmac-drbg@1.0.1(transitive)
+ Addedhosted-git-info@2.8.9(transitive)
+ Addedhtml-entities@1.4.0(transitive)
+ Addedhttps-browserify@1.0.0(transitive)
+ Addedieee754@1.2.1(transitive)
+ Addedinherits@2.0.32.0.4(transitive)
+ Addedinterpret@1.4.0(transitive)
+ Addedinvert-kv@1.0.0(transitive)
+ Addedis-accessor-descriptor@1.0.1(transitive)
+ Addedis-arrayish@0.2.1(transitive)
+ Addedis-binary-path@1.0.12.1.0(transitive)
+ Addedis-buffer@1.1.6(transitive)
+ Addedis-core-module@2.16.1(transitive)
+ Addedis-data-descriptor@1.0.1(transitive)
+ Addedis-descriptor@0.1.71.0.3(transitive)
+ Addedis-extendable@0.1.11.0.1(transitive)
+ Addedis-extglob@2.1.1(transitive)
+ Addedis-fullwidth-code-point@1.0.0(transitive)
+ Addedis-glob@3.1.04.0.3(transitive)
+ Addedis-number@3.0.07.0.0(transitive)
+ Addedis-plain-object@2.0.4(transitive)
+ Addedis-utf8@0.2.1(transitive)
+ Addedis-windows@1.0.2(transitive)
+ Addedisarray@1.0.02.0.5(transitive)
+ Addedisobject@2.1.03.0.1(transitive)
+ Addedjson-loader@0.5.7(transitive)
+ Addedjson-stable-stringify@1.2.1(transitive)
+ Addedjson5@0.5.1(transitive)
+ Addedjsonify@0.0.1(transitive)
+ Addedkind-of@3.2.24.0.06.0.3(transitive)
+ Addedlazy-cache@1.0.4(transitive)
+ Addedlcid@1.0.0(transitive)
+ Addedload-json-file@1.1.0(transitive)
+ Addedloader-runner@2.4.0(transitive)
+ Addedloader-utils@0.2.17(transitive)
+ Addedlodash@4.17.21(transitive)
+ Addedlongest@1.0.1(transitive)
+ Addedmap-cache@0.2.2(transitive)
+ Addedmap-visit@1.0.0(transitive)
+ Addedmath-intrinsics@1.1.0(transitive)
+ Addedmd5.js@1.3.5(transitive)
+ Addedmemory-fs@0.3.00.4.1(transitive)
+ Addedmicromatch@3.1.10(transitive)
+ Addedmiller-rabin@4.0.1(transitive)
+ Addedmime@1.6.0(transitive)
+ Addedminimalistic-assert@1.0.1(transitive)
+ Addedminimalistic-crypto-utils@1.0.1(transitive)
+ Addedminimist@1.2.8(transitive)
+ Addedmixin-deep@1.3.2(transitive)
+ Addedmkdirp@0.5.6(transitive)
+ Addedms@2.0.0(transitive)
+ Addednan@2.22.0(transitive)
+ Addednanomatch@1.2.13(transitive)
+ Addedneo-async@2.6.2(transitive)
+ Addednode-libs-browser@2.2.1(transitive)
+ Addednormalize-package-data@2.5.0(transitive)
+ Addednormalize-path@2.1.13.0.0(transitive)
+ Addednumber-is-nan@1.0.1(transitive)
+ Addedobject-assign@4.1.1(transitive)
+ Addedobject-copy@0.1.0(transitive)
+ Addedobject-inspect@1.13.4(transitive)
+ Addedobject-keys@1.1.1(transitive)
+ Addedobject-visit@1.0.1(transitive)
+ Addedobject.assign@4.1.7(transitive)
+ Addedobject.pick@1.3.0(transitive)
+ Addedos-browserify@0.3.0(transitive)
+ Addedos-locale@1.4.0(transitive)
+ Addedpako@1.0.11(transitive)
+ Addedparse-asn1@5.1.7(transitive)
+ Addedparse-json@2.2.0(transitive)
+ Addedpascalcase@0.1.1(transitive)
+ Addedpath-browserify@0.0.1(transitive)
+ Addedpath-dirname@1.0.2(transitive)
+ Addedpath-exists@2.1.0(transitive)
+ Addedpath-is-absolute@1.0.1(transitive)
+ Addedpath-parse@1.0.7(transitive)
+ Addedpath-type@1.1.0(transitive)
+ Addedpbkdf2@3.1.2(transitive)
+ Addedpicomatch@2.3.1(transitive)
+ Addedpify@2.3.0(transitive)
+ Addedpinkie@2.0.4(transitive)
+ Addedpinkie-promise@2.0.1(transitive)
+ Addedposix-character-classes@0.1.1(transitive)
+ Addedprocess@0.11.10(transitive)
+ Addedprocess-nextick-args@2.0.1(transitive)
+ Addedprr@1.0.1(transitive)
+ Addedpublic-encrypt@4.0.3(transitive)
+ Addedpunycode@1.4.1(transitive)
+ Addedqs@6.14.0(transitive)
+ Addedquerystring@0.2.1(transitive)
+ Addedquerystring-es3@0.2.1(transitive)
+ Addedrandombytes@2.1.0(transitive)
+ Addedrandomfill@1.0.4(transitive)
+ Addedrange-parser@1.2.1(transitive)
+ Addedread-pkg@1.1.0(transitive)
+ Addedread-pkg-up@1.0.1(transitive)
+ Addedreadable-stream@2.3.8(transitive)
+ Addedreaddirp@2.2.13.6.0(transitive)
+ Addedregex-not@1.0.2(transitive)
+ Addedremove-trailing-separator@1.1.0(transitive)
+ Addedrepeat-element@1.1.4(transitive)
+ Addedrepeat-string@1.6.1(transitive)
+ Addedrequire-directory@2.1.1(transitive)
+ Addedrequire-main-filename@1.0.1(transitive)
+ Addedresolve@1.22.10(transitive)
+ Addedresolve-url@0.2.1(transitive)
+ Addedret@0.1.15(transitive)
+ Addedright-align@0.1.3(transitive)
+ Addedripemd160@2.0.2(transitive)
+ Addedsafe-buffer@5.1.25.2.1(transitive)
+ Addedsafe-regex@1.1.0(transitive)
+ Addedsemver@5.7.2(transitive)
+ Addedset-blocking@2.0.0(transitive)
+ Addedset-function-length@1.2.2(transitive)
+ Addedset-value@2.0.1(transitive)
+ Addedsetimmediate@1.0.5(transitive)
+ Addedsha.js@2.4.11(transitive)
+ Addedside-channel@1.1.0(transitive)
+ Addedside-channel-list@1.0.0(transitive)
+ Addedside-channel-map@1.0.1(transitive)
+ Addedside-channel-weakmap@1.0.2(transitive)
+ Addedsnapdragon@0.8.2(transitive)
+ Addedsnapdragon-node@2.1.1(transitive)
+ Addedsnapdragon-util@3.0.1(transitive)
+ Addedsource-list-map@2.0.1(transitive)
+ Addedsource-map@0.5.70.6.1(transitive)
+ Addedsource-map-resolve@0.5.3(transitive)
+ Addedsource-map-url@0.4.1(transitive)
+ Addedspdx-correct@3.2.0(transitive)
+ Addedspdx-exceptions@2.5.0(transitive)
+ Addedspdx-expression-parse@3.0.1(transitive)
+ Addedspdx-license-ids@3.0.21(transitive)
+ Addedsplit-string@3.1.0(transitive)
+ Addedstatic-extend@0.1.2(transitive)
+ Addedstream-browserify@2.0.2(transitive)
+ Addedstream-http@2.8.3(transitive)
+ Addedstring-width@1.0.2(transitive)
+ Addedstring_decoder@1.1.1(transitive)
+ Addedstrip-ansi@3.0.1(transitive)
+ Addedstrip-bom@2.0.0(transitive)
+ Addedsupports-color@3.2.3(transitive)
+ Addedsupports-preserve-symlinks-flag@1.0.0(transitive)
+ Addedtapable@0.2.9(transitive)
+ Addedtimers-browserify@2.0.12(transitive)
+ Addedto-arraybuffer@1.0.1(transitive)
+ Addedto-object-path@0.3.0(transitive)
+ Addedto-regex@3.0.2(transitive)
+ Addedto-regex-range@2.1.15.0.1(transitive)
+ Addedtty-browserify@0.0.0(transitive)
+ Addeduglify-js@2.8.29(transitive)
+ Addeduglify-to-browserify@1.0.2(transitive)
+ Addedunion-value@1.0.1(transitive)
+ Addedunset-value@1.0.0(transitive)
+ Addedupath@1.2.0(transitive)
+ Addedurix@0.1.0(transitive)
+ Addedurl@0.11.4(transitive)
+ Addeduse@3.1.1(transitive)
+ Addedutil@0.10.40.11.1(transitive)
+ Addedutil-deprecate@1.0.2(transitive)
+ Addedvalidate-npm-package-license@3.0.4(transitive)
+ Addedvm-browserify@1.1.2(transitive)
+ Addedwatchpack@1.7.5(transitive)
+ Addedwatchpack-chokidar2@2.0.1(transitive)
+ Addedwebpack@2.7.0(transitive)
+ Addedwebpack-dev-middleware@1.8.4(transitive)
+ Addedwebpack-hot-middleware@2.13.2(transitive)
+ Addedwebpack-sources@1.4.3(transitive)
+ Addedwhich-module@1.0.0(transitive)
+ Addedwindow-size@0.1.0(transitive)
+ Addedwordwrap@0.0.2(transitive)
+ Addedwrap-ansi@2.1.0(transitive)
+ Addedxtend@4.0.2(transitive)
+ Addedy18n@3.2.2(transitive)
+ Addedyargs@3.10.06.6.0(transitive)
+ Addedyargs-parser@4.2.1(transitive)