diff --git a/package.json b/package.json index b0b0e02..99711c2 100644 --- a/package.json +++ b/package.json @@ -18,18 +18,21 @@ "url": "https://github.com/robinvdvleuten/vuex-persistedstate/issues" }, "main": "dist/vuex-persistedstate.js", + "browser": "dist/vuex-persistedstate.umd.js", + "jsnext:main": "src/plugin.js", "files": [ - "dist/vuex-persistedstate.js", - "dist/vuex-persistedstate.min.js", + "dist", "src", "LICENSE", "README.md" ], "scripts": { - "build": "rollup -c --environment NODE_ENV:production && uglifyjs dist/vuex-persistedstate.js --comments -o dist/vuex-persistedstate.min.js", - "test": "npm run build && jest --env=jsdom", + "build": "mkdir -p dist && npm run -s build:cjs && npm run -s build:umd", + "build:cjs": "rollup -c -f cjs | uglifyjs -cm -o $npm_package_main", + "build:umd": "rollup -c -n $npm_package_name -f umd | uglifyjs -cm -o $npm_package_browser", "precommit": "npm run build && lint-staged", - "prepublish": "npm run build" + "prepublish": "npm run build", + "test": "jest --env=jsdom" }, "lint-staged": { "src/**/*.js": [ diff --git a/rollup.config.js b/rollup.config.js index 6578a4e..bfacdfc 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -1,28 +1,17 @@ -const buble = require('rollup-plugin-buble') -const pkg = require('./package.json') +import buble from 'rollup-plugin-buble'; +import fs from 'fs'; -const banner = - `/** - * @license - * - * vuex-persistedstate v${pkg.version} - * - * (c) ${new Date().getFullYear()} Robin van der Vleuten - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */` +const pkg = JSON.parse(fs.readFileSync('./package.json')); -module.exports = { - entry: 'src/plugin.js', - moduleName: 'createPersistedState', - dest: pkg.main, - useStrict: false, - format: 'umd', - globals: { +export default { + entry: 'src/plugin.js', + useStrict: false, + sourceMap: false, + plugins: [ + buble() + ], + globals: { 'lodash.merge': 'merge' }, external: ['lodash.merge'], - plugins: [buble()], - banner -} +}; diff --git a/src/plugin.js b/src/plugin.js index d393da1..8d06444 100644 --- a/src/plugin.js +++ b/src/plugin.js @@ -26,8 +26,8 @@ const defaultReducer = (state, paths) => const canWriteStorage = storage => { try { - storage.setItem('_canWriteToStorage', 1); - storage.removeItem('_canWriteToStorage'); + storage.setItem('@@', 1); + storage.removeItem('@@'); return true; } catch (e) { return false; diff --git a/src/plugin.spec.js b/src/plugin.spec.js index 5966e21..9360922 100644 --- a/src/plugin.spec.js +++ b/src/plugin.spec.js @@ -1,7 +1,7 @@ import Vue from 'vue'; import Vuex, { Store } from 'vuex'; import Storage from 'dom-storage'; -import createPersistedState from '../dist/vuex-persistedstate'; +import createPersistedState from './plugin'; Vue.use(Vuex);