├── static └── .gitkeep ├── .vscode └── settings.json ├── .gitignore ├── .babelrc ├── config ├── prod.env.js ├── test.env.js ├── dev.env.js └── index.js ├── src ├── assets │ └── logo.png ├── vue-calendar-component │ ├── index.js │ ├── calendar.js │ └── calendar.vue ├── router │ └── index.js ├── App.vue ├── main.js └── demo │ └── demo.vue ├── test ├── unit │ ├── .eslintrc │ ├── specs │ │ └── Hello.spec.js │ ├── index.js │ └── karma.conf.js └── e2e │ ├── specs │ └── test.js │ ├── custom-assertions │ └── elementCount.js │ ├── runner.js │ └── nightwatch.conf.js ├── index.html ├── dist ├── static │ ├── css │ │ └── app.7eadf47d1c1a7d67cc4760f0a424f0b1.css │ └── js │ │ ├── manifest.3ad1d5771e9b13dbdad2.js │ │ └── app.fe9ac084af73375d6135.js └── index.html ├── package.json ├── README.md └── npm-debug.log /static/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | } -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /node_modules/ 2 | -------------------------------------------------------------------------------- /.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": ["env"] 3 | } -------------------------------------------------------------------------------- /config/prod.env.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | module.exports = { 3 | NODE_ENV: '"production"' 4 | } 5 | -------------------------------------------------------------------------------- /src/assets/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zwhGithub/vue-calendar/HEAD/src/assets/logo.png -------------------------------------------------------------------------------- /src/vue-calendar-component/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Created by ZWH on 2017/6/22. 3 | */ 4 | import Calendar from './calendar.vue'; 5 | export default Calendar; 6 | -------------------------------------------------------------------------------- /test/unit/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "env": { 3 | "mocha": true 4 | }, 5 | "globals": { 6 | "expect": true, 7 | "sinon": true 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /config/test.env.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | const merge = require('webpack-merge') 3 | const devEnv = require('./dev.env') 4 | 5 | module.exports = merge(devEnv, { 6 | NODE_ENV: '"testing"' 7 | }) 8 | -------------------------------------------------------------------------------- /config/dev.env.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | const merge = require('webpack-merge') 3 | const prodEnv = require('./prod.env') 4 | 5 | module.exports = merge(prodEnv, { 6 | NODE_ENV: '"development"' 7 | }) 8 | -------------------------------------------------------------------------------- /src/router/index.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import Router from 'vue-router' 3 | import HelloWorld from '@/demo/demo' 4 | 5 | Vue.use(Router) 6 | 7 | export default new Router({ 8 | routes: [{ 9 | path: '/', 10 | name: 'Hello', 11 | component: HelloWorld 12 | }] 13 | }) -------------------------------------------------------------------------------- /src/App.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 12 | 13 | 25 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | app 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /test/unit/specs/Hello.spec.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import HelloWorld from '@/components/HelloWorld' 3 | 4 | describe('HelloWorld.vue', () => { 5 | it('should render correct contents', () => { 6 | const Constructor = Vue.extend(HelloWorld) 7 | const vm = new Constructor().$mount() 8 | expect(vm.$el.querySelector('.hello h1').textContent) 9 | .to.equal('Welcome to Your Vue.js App') 10 | }) 11 | }) 12 | -------------------------------------------------------------------------------- /src/main.js: -------------------------------------------------------------------------------- 1 | // The Vue build version to load with the `import` command 2 | // (runtime-only or standalone) has been set in webpack.base.conf with an alias. 3 | import Vue from 'vue'; 4 | import App from './App'; 5 | import router from './router'; 6 | 7 | Vue.config.productionTip = false; 8 | import Toast from 'vue-toast-component'; 9 | Vue.use(Toast); 10 | 11 | /* eslint-disable no-new */ 12 | new Vue({ 13 | el: '#app', 14 | router, 15 | template: '', 16 | components: { App } 17 | }); -------------------------------------------------------------------------------- /dist/static/css/app.7eadf47d1c1a7d67cc4760f0a424f0b1.css: -------------------------------------------------------------------------------- 1 | *{margin:0;padding:0}#app,body{width:100%;height:100%;background:#ddd}h3[data-v-02a3a480]{text-align:center;width:90%;margin:auto}.div[data-v-02a3a480]{margin:auto;width:220px;height:44px;line-height:44px;background:#0fc37c;color:#fff;font-size:17px;text-align:center;margin-top:20px}.wh_container[data-v-02a3a480] .mark1{background-color:orange}.wh_container[data-v-02a3a480] .mark2{background-color:blue}.wh_content_item>.wh_isMark[data-v-02a3a480]{background:orange} -------------------------------------------------------------------------------- /test/unit/index.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | 3 | Vue.config.productionTip = false 4 | 5 | // require all test files (files that ends with .spec.js) 6 | const testsContext = require.context('./specs', true, /\.spec$/) 7 | testsContext.keys().forEach(testsContext) 8 | 9 | // require all src files except main.js for coverage. 10 | // you can also change this to match only the subset of files that 11 | // you want coverage for. 12 | const srcContext = require.context('../../src', true, /^\.\/(?!main(\.js)?$)/) 13 | srcContext.keys().forEach(srcContext) 14 | -------------------------------------------------------------------------------- /dist/index.html: -------------------------------------------------------------------------------- 1 | app
-------------------------------------------------------------------------------- /test/e2e/specs/test.js: -------------------------------------------------------------------------------- 1 | // For authoring Nightwatch tests, see 2 | // http://nightwatchjs.org/guide#usage 3 | 4 | module.exports = { 5 | 'default e2e tests': function (browser) { 6 | // automatically uses dev Server port from /config.index.js 7 | // default: http://localhost:8080 8 | // see nightwatch.conf.js 9 | const devServer = browser.globals.devServerURL 10 | 11 | browser 12 | .url(devServer) 13 | .waitForElementVisible('#app', 5000) 14 | .assert.elementPresent('.hello') 15 | .assert.containsText('h1', 'Welcome to Your Vue.js App') 16 | .assert.elementCount('img', 1) 17 | .end() 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /dist/static/js/manifest.3ad1d5771e9b13dbdad2.js: -------------------------------------------------------------------------------- 1 | !function(r){function n(e){if(o[e])return o[e].exports;var t=o[e]={i:e,l:!1,exports:{}};return r[e].call(t.exports,t,t.exports,n),t.l=!0,t.exports}var e=window.webpackJsonp;window.webpackJsonp=function(o,u,c){for(var f,i,p,a=0,l=[];a has count: ' + count 11 | this.expected = count 12 | this.pass = function (val) { 13 | return val === this.expected 14 | } 15 | this.value = function (res) { 16 | return res.value 17 | } 18 | this.command = function (cb) { 19 | var self = this 20 | return this.api.execute(function (selector) { 21 | return document.querySelectorAll(selector).length 22 | }, [selector], function (res) { 23 | cb.call(self, res) 24 | }) 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /test/unit/karma.conf.js: -------------------------------------------------------------------------------- 1 | // This is a karma config file. For more details see 2 | // http://karma-runner.github.io/0.13/config/configuration-file.html 3 | // we are also using it with karma-webpack 4 | // https://github.com/webpack/karma-webpack 5 | 6 | var webpackConfig = require('../../build/webpack.test.conf') 7 | 8 | module.exports = function (config) { 9 | config.set({ 10 | // to run in additional browsers: 11 | // 1. install corresponding karma launcher 12 | // http://karma-runner.github.io/0.13/config/browsers.html 13 | // 2. add it to the `browsers` array below. 14 | browsers: ['PhantomJS'], 15 | frameworks: ['mocha', 'sinon-chai', 'phantomjs-shim'], 16 | reporters: ['spec', 'coverage'], 17 | files: ['./index.js'], 18 | preprocessors: { 19 | './index.js': ['webpack', 'sourcemap'] 20 | }, 21 | webpack: webpackConfig, 22 | webpackMiddleware: { 23 | noInfo: true 24 | }, 25 | coverageReporter: { 26 | dir: './coverage', 27 | reporters: [ 28 | { type: 'lcov', subdir: '.' }, 29 | { type: 'text-summary' } 30 | ] 31 | } 32 | }) 33 | } 34 | -------------------------------------------------------------------------------- /test/e2e/runner.js: -------------------------------------------------------------------------------- 1 | // 1. start the dev server using production config 2 | process.env.NODE_ENV = 'testing' 3 | var server = require('../../build/dev-server.js') 4 | 5 | server.ready.then(() => { 6 | // 2. run the nightwatch test suite against it 7 | // to run in additional browsers: 8 | // 1. add an entry in test/e2e/nightwatch.conf.json under "test_settings" 9 | // 2. add it to the --env flag below 10 | // or override the environment flag, for example: `npm run e2e -- --env chrome,firefox` 11 | // For more information on Nightwatch's config file, see 12 | // http://nightwatchjs.org/guide#settings-file 13 | var opts = process.argv.slice(2) 14 | if (opts.indexOf('--config') === -1) { 15 | opts = opts.concat(['--config', 'test/e2e/nightwatch.conf.js']) 16 | } 17 | if (opts.indexOf('--env') === -1) { 18 | opts = opts.concat(['--env', 'chrome']) 19 | } 20 | 21 | var spawn = require('cross-spawn') 22 | var runner = spawn('./node_modules/.bin/nightwatch', opts, { stdio: 'inherit' }) 23 | 24 | runner.on('exit', function (code) { 25 | server.close() 26 | process.exit(code) 27 | }) 28 | 29 | runner.on('error', function (err) { 30 | server.close() 31 | throw err 32 | }) 33 | }) 34 | -------------------------------------------------------------------------------- /test/e2e/nightwatch.conf.js: -------------------------------------------------------------------------------- 1 | require('babel-register') 2 | var config = require('../../config') 3 | 4 | // http://nightwatchjs.org/gettingstarted#settings-file 5 | module.exports = { 6 | src_folders: ['test/e2e/specs'], 7 | output_folder: 'test/e2e/reports', 8 | custom_assertions_path: ['test/e2e/custom-assertions'], 9 | 10 | selenium: { 11 | start_process: true, 12 | server_path: require('selenium-server').path, 13 | host: '127.0.0.1', 14 | port: 4444, 15 | cli_args: { 16 | 'webdriver.chrome.driver': require('chromedriver').path 17 | } 18 | }, 19 | 20 | test_settings: { 21 | default: { 22 | selenium_port: 4444, 23 | selenium_host: 'localhost', 24 | silent: true, 25 | globals: { 26 | devServerURL: 'http://localhost:' + (process.env.PORT || config.dev.port) 27 | } 28 | }, 29 | 30 | chrome: { 31 | desiredCapabilities: { 32 | browserName: 'chrome', 33 | javascriptEnabled: true, 34 | acceptSslCerts: true 35 | } 36 | }, 37 | 38 | firefox: { 39 | desiredCapabilities: { 40 | browserName: 'firefox', 41 | javascriptEnabled: true, 42 | acceptSslCerts: true 43 | } 44 | } 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /config/index.js: -------------------------------------------------------------------------------- 1 | 2 | 'use strict' 3 | // Template version: 1.1.3 4 | // see http://vuejs-templates.github.io/webpack for documentation. 5 | 6 | const path = require('path') 7 | 8 | module.exports = { 9 | build: { 10 | env: require('./prod.env'), 11 | index: path.resolve(__dirname, '../dist/index.html'), 12 | assetsRoot: path.resolve(__dirname, '../dist'), 13 | assetsSubDirectory: 'static', 14 | assetsPublicPath: './', 15 | productionSourceMap: true, 16 | // Gzip off by default as many popular static hosts such as 17 | // Surge or Netlify already gzip all static assets for you. 18 | // Before setting to `true`, make sure to: 19 | // npm install --save-dev compression-webpack-plugin 20 | productionGzip: false, 21 | productionGzipExtensions: ['js', 'css'], 22 | // Run the build command with an extra argument to 23 | // View the bundle analyzer report after build finishes: 24 | // `npm run build --report` 25 | // Set to `true` or `false` to always turn it on or off 26 | bundleAnalyzerReport: process.env.npm_config_report 27 | }, 28 | dev: { 29 | env: require('./dev.env'), 30 | port: process.env.PORT || 8080, 31 | autoOpenBrowser: true, 32 | assetsSubDirectory: 'static', 33 | assetsPublicPath: '/', 34 | proxyTable: {}, 35 | // CSS Sourcemaps off by default because relative paths are "buggy" 36 | // with this option, according to the CSS-Loader README 37 | // (https://github.com/webpack/css-loader#sourcemaps) 38 | // In our experience, they generally work as expected, 39 | // just be aware of this issue when enabling this option. 40 | cssSourceMap: false 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "vue-demo", 3 | "version": "1.0.0", 4 | "description": "A Vue.js project", 5 | "author": "wh git push origin master:gh-pages", 6 | "private": true, 7 | "scripts": { 8 | "dev": "node build/dev-server.js", 9 | "start": "npm run dev", 10 | "build": "node build/build.js", 11 | "unit": "cross-env BABEL_ENV=test karma start test/unit/karma.conf.js --single-run", 12 | "e2e": "node test/e2e/runner.js", 13 | "test": "npm run unit && npm run e2e" 14 | }, 15 | "dependencies": { 16 | "vue": "^2.5.2", 17 | "vue-calendar-component": "^2.8.2", 18 | "vue-router": "^3.0.1", 19 | "vue-toast-component": "^2.0.0" 20 | }, 21 | "devDependencies": { 22 | "autoprefixer": "^7.1.2", 23 | "babel-core": "^6.22.1", 24 | "babel-loader": "^7.1.1", 25 | "babel-plugin-transform-runtime": "^6.22.0", 26 | "babel-preset-env": "^1.3.2", 27 | "babel-preset-stage-2": "^6.22.0", 28 | "babel-register": "^6.22.0", 29 | "chalk": "^2.0.1", 30 | "connect-history-api-fallback": "^1.3.0", 31 | "copy-webpack-plugin": "^4.0.1", 32 | "css-loader": "^0.28.0", 33 | "eventsource-polyfill": "^0.9.6", 34 | "express": "^4.14.1", 35 | "extract-text-webpack-plugin": "^3.0.0", 36 | "file-loader": "^1.1.4", 37 | "friendly-errors-webpack-plugin": "^1.6.1", 38 | "html-webpack-plugin": "^2.30.1", 39 | "http-proxy-middleware": "^0.17.3", 40 | "webpack-bundle-analyzer": "^2.9.0", 41 | "cross-env": "^5.0.1", 42 | "karma": "^1.4.1", 43 | "karma-coverage": "^1.1.1", 44 | "karma-mocha": "^1.3.0", 45 | "karma-phantomjs-launcher": "^1.0.2", 46 | "karma-phantomjs-shim": "^1.4.0", 47 | "karma-sinon-chai": "^1.3.1", 48 | "karma-sourcemap-loader": "^0.3.7", 49 | "karma-spec-reporter": "0.0.31", 50 | "karma-webpack": "^2.0.2", 51 | "mocha": "^3.2.0", 52 | "chai": "^4.1.2", 53 | "sinon": "^4.0.0", 54 | "sinon-chai": "^2.8.0", 55 | "inject-loader": "^3.0.0", 56 | "babel-plugin-istanbul": "^4.1.1", 57 | "phantomjs-prebuilt": "^2.1.14", 58 | "chromedriver": "^2.27.2", 59 | "cross-spawn": "^5.0.1", 60 | "nightwatch": "^0.9.12", 61 | "selenium-server": "^3.0.1", 62 | "semver": "^5.3.0", 63 | "shelljs": "^0.7.6", 64 | "opn": "^5.1.0", 65 | "optimize-css-assets-webpack-plugin": "^3.2.0", 66 | "ora": "^1.2.0", 67 | "rimraf": "^2.6.0", 68 | "url-loader": "^0.5.8", 69 | "vue-loader": "^13.3.0", 70 | "vue-style-loader": "^3.0.1", 71 | "vue-template-compiler": "^2.5.2", 72 | "portfinder": "^1.0.13", 73 | "webpack": "^3.6.0", 74 | "webpack-dev-middleware": "^1.12.0", 75 | "webpack-hot-middleware": "^2.18.2", 76 | "webpack-merge": "^4.1.0" 77 | }, 78 | "engines": { 79 | "node": ">= 4.0.0", 80 | "npm": ">= 3.0.0" 81 | }, 82 | "browserslist": [ 83 | "> 1%", 84 | "last 2 versions", 85 | "not ie <= 8" 86 | ] 87 | } 88 | -------------------------------------------------------------------------------- /dist/static/js/app.fe9ac084af73375d6135.js: -------------------------------------------------------------------------------- 1 | webpackJsonp([1],{"2+Mw":function(e,t,a){"use strict";var n=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"content"},[a("Calendar",{ref:"Calendar",attrs:{markDateMore:e.arr,markDate:e.arr2,agoDayHide:"1530115221"},on:{isToday:e.clickToday,choseDay:e.clickDay,changeMonth:e.changeDate}}),e._v(" "),a("br"),e._v(" "),a("h3",{on:{click:e.demo}},[e._v("markDateMore标记不同风格::1号2号一种风格====13号另一种风格")]),e._v(" "),a("br"),e._v(" "),a("h3",[e._v("markDate 标记23号 单一风格 更简单")]),e._v(" "),a("div",{staticClass:"div",on:{click:e.demo}},[e._v("点击跳到2018-12-12")])],1)},r=[],o={render:n,staticRenderFns:r};t.a=o},"2lNz":function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=a("qPaF"),r=function(e){return e&&e.__esModule?e:{default:e}}(n);t.default={data:function(){return{arr2:[],arr:[{date:"2018/8/1",className:"mark1"},{date:"2018/8/13",className:"mark2"}]}},components:{Calendar:r.default},methods:{clickDay:function(e){console.log("选中了",e),this.$toast("选中了"+e)},clickToday:function(e){console.log("跳到了本月今天",e)},changeDate:function(e){this.$toast("切换到的月份为"+e),console.log("左右点击切换月份",e)},demo:function(){this.$refs.Calendar.ChoseMonth("2018-12-13")}},created:function(){function e(e,t){return e=new Date(e),e.getFullYear()+"-"+(e.getMonth()+1)+"-"+t}var t=this;setTimeout(function(){t.arr=[{date:e(new Date,3),className:"mark1"},{date:e(new Date,12),className:"mark2"}],t.arr.push({date:e(new Date,15),className:"mark1"})},300)}}},"40c4":function(e,t,a){"use strict";var n=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{attrs:{id:"app"}},[a("router-view")],1)},r=[],o={render:n,staticRenderFns:r};t.a=o},M93x:function(e,t,a){"use strict";function n(e){a("Q+oy")}Object.defineProperty(t,"__esModule",{value:!0});var r=a("xJD8"),o=a.n(r);for(var u in r)"default"!==u&&function(e){a.d(t,e,function(){return r[e]})}(u);var c=a("40c4"),l=a("VU/8"),s=n,i=l(o.a,c.a,!1,s,null,null);t.default=i.exports},NHnr:function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}var r=a("7+uW"),o=n(r),u=a("M93x"),c=n(u),l=a("YaEn"),s=n(l),i=a("lmBj"),d=n(i);o.default.config.productionTip=!1,o.default.use(d.default),new o.default({el:"#app",router:s.default,template:"",components:{App:c.default}})},"Q+oy":function(e,t){},YaEn:function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var r=a("7+uW"),o=n(r),u=a("/ocq"),c=n(u),l=a("eNIl"),s=n(l);o.default.use(c.default),t.default=new c.default({routes:[{path:"/",name:"Hello",component:s.default}]})},dHB5:function(e,t){},eNIl:function(e,t,a){"use strict";function n(e){a("dHB5")}Object.defineProperty(t,"__esModule",{value:!0});var r=a("2lNz"),o=a.n(r);for(var u in r)"default"!==u&&function(e){a.d(t,e,function(){return r[e]})}(u);var c=a("2+Mw"),l=a("VU/8"),s=n,i=l(o.a,c.a,!1,s,"data-v-02a3a480",null);t.default=i.exports},xJD8:function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={name:"app"}}},["NHnr"]); -------------------------------------------------------------------------------- /src/demo/demo.vue: -------------------------------------------------------------------------------- 1 | 21 | 22 | 85 | 86 | 87 | -------------------------------------------------------------------------------- /src/vue-calendar-component/calendar.js: -------------------------------------------------------------------------------- 1 | export default { 2 | // 当某月的天数 3 | getDaysInOneMonth(date) { 4 | const year = date.getFullYear(); 5 | const month = date.getMonth() + 1; 6 | const d = new Date(year, month, 0); 7 | return d.getDate(); 8 | }, 9 | // 向前空几个 10 | getMonthweek(date) { 11 | const year = date.getFullYear(); 12 | const month = date.getMonth() + 1; 13 | const dateFirstOne = new Date(year + '/' + month + '/1'); 14 | return this.sundayStart ? 15 | dateFirstOne.getDay() == 0 ? 7 : dateFirstOne.getDay() : 16 | dateFirstOne.getDay() == 0 ? 6 : dateFirstOne.getDay() - 1; 17 | }, 18 | /** 19 | * 获取当前日期上个月或者下个月 20 | */ 21 | getOtherMonth(date, str = 'nextMonth') { 22 | const timeArray = this.dateFormat(date).split('/'); 23 | const year = timeArray[0]; 24 | const month = timeArray[1]; 25 | const day = timeArray[2]; 26 | let year2 = year; 27 | let month2; 28 | if (str === 'nextMonth') { 29 | month2 = parseInt(month) + 1; 30 | if (month2 == 13) { 31 | year2 = parseInt(year2) + 1; 32 | month2 = 1; 33 | } 34 | } else { 35 | month2 = parseInt(month) - 1; 36 | if (month2 == 0) { 37 | year2 = parseInt(year2) - 1; 38 | month2 = 12; 39 | } 40 | } 41 | let day2 = day; 42 | const days2 = new Date(year2, month2, 0).getDate(); 43 | if (day2 > days2) { 44 | day2 = days2; 45 | } 46 | if (month2 < 10) { 47 | month2 = '0' + month2; 48 | } 49 | if (day2 < 10) { 50 | day2 = '0' + day2; 51 | } 52 | const t2 = year2 + '/' + month2 + '/' + day2; 53 | return new Date(t2); 54 | }, 55 | // 上个月末尾的一些日期 56 | getLeftArr(date) { 57 | const arr = []; 58 | const leftNum = this.getMonthweek(date); 59 | const num = this.getDaysInOneMonth(this.getOtherMonth(date, 'preMonth')) - leftNum + 1; 60 | const preDate = this.getOtherMonth(date, 'preMonth'); 61 | // 上个月多少开始 62 | for (let i = 0; i < leftNum; i++) { 63 | const nowTime = preDate.getFullYear() + '/' + (preDate.getMonth() + 1) + '/' + (num + i); 64 | arr.push({ 65 | id: num + i, 66 | date: nowTime, 67 | isToday: false, 68 | otherMonth: 'preMonth', 69 | }); 70 | } 71 | return arr; 72 | }, 73 | // 下个月末尾的一些日期 74 | getRightArr(date) { 75 | const arr = []; 76 | const nextDate = this.getOtherMonth(date, 'nextMonth'); 77 | const leftLength = this.getDaysInOneMonth(date) + this.getMonthweek(date); 78 | const _length = 7 - leftLength % 7; 79 | for (let i = 0; i < _length; i++) { 80 | const nowTime = nextDate.getFullYear() + '/' + (nextDate.getMonth() + 1) + '/' + (i + 1); 81 | arr.push({ 82 | id: i + 1, 83 | date: nowTime, 84 | isToday: false, 85 | otherMonth: 'nextMonth', 86 | }); 87 | } 88 | return arr; 89 | }, 90 | // format日期 91 | dateFormat(date) { 92 | date = typeof date === 'string' ? new Date(date.replace(/\-/g, '/')) : date; 93 | return date.getFullYear() + '/' + (date.getMonth() + 1) + '/' 94 | + date.getDate(); 95 | }, 96 | // 获取某月的列表不包括上月和下月 97 | getMonthListNoOther(date) { 98 | const arr = []; 99 | const num = this.getDaysInOneMonth(date); 100 | const year = date.getFullYear(); 101 | const month = date.getMonth() + 1; 102 | const toDay = this.dateFormat(new Date()); 103 | 104 | for (let i = 0; i < num; i++) { 105 | const nowTime = year + '/' + month + '/' + (i + 1); 106 | arr.push({ 107 | id: i + 1, 108 | date: nowTime, 109 | isToday: toDay === nowTime, 110 | otherMonth: 'nowMonth', 111 | }); 112 | } 113 | return arr; 114 | }, 115 | // 获取某月的列表 用于渲染 116 | getMonthList(date) { 117 | return [ ...this.getLeftArr(date), ...this.getMonthListNoOther(date), ...this.getRightArr(date) ]; 118 | }, 119 | // 默认是周一开始 120 | sundayStart: false, 121 | }; -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## vue-calendar-component 2 | 3 | * 基于 vue 2.0 开发的轻量,高性能日历组件 4 | * 占用内存小,性能好,样式好看,可扩展性强 5 | * 原生 js 开发,没引入第三方库 6 | 7 | ![](https://img.shields.io/npm/v/vue-calendar-component.svg) 8 | ![](https://img.shields.io/npm/dt/vue-calendar-component.svg) 9 | 10 | ## Why 11 | 12 | * Github 上很多点击弹出日历选择某个时间的组件,却没有找到单纯展示日历并且能点击获取时间的组件 13 | * 少部分日历组件的占用内存过于大,对于日历这样简单的功能来说显然不够合理 14 | 15 | ## Demo 16 | 17 | ![效果](http://qiniu.lovejs.top/1548813176.png) [或者请用浏览器的手机模式查看](https://zwhgithub.github.io/vue-calendar/dist/#/) 18 | 19 | ## 效果 20 | 21 | ![效果](http://qiniu.lovejs.top/21312312312312312.jpg?imageView2/2/h/530) 22 | * 🎉 觉得好用给一个 star 哦~~ 🎉 23 | 24 | ## Install 25 | 26 | ```javascript 27 | npm i vue-calendar-component --save 28 | cnpm i vue-calendar-component --save //国内镜像 29 | ``` 30 | 31 | ## [github地址](https://github.com/zwhGithub/vue-calendar) 详细文档 32 | 33 | 34 | ## Usage 35 | 36 | ```javascript 37 | //vue文件中引入 38 | import Calendar from 'vue-calendar-component'; 39 | 40 | components: { 41 | Calendar 42 | } 43 | 54 | 55 | clickDay(data) { 56 | console.log(data); //选中某天 57 | }, 58 | changeDate(data) { 59 | console.log(data); //左右点击切换月份 60 | }, 61 | clickToday(data) { 62 | console.log(data); // 跳到了本月 63 | } 64 | 65 | // 多个标记示例 66 | arr=[{date:'2018/4/1',className:"mark1"}, {date:'2018/4/13',className:"mark2"}]; 67 | //4月1 标记的className是mark1 根据class做出一些标记样式 68 | ``` 69 | 70 | ### API 71 | 72 | | 属性 | 说明 | 默认 | 是否必传 | 73 | | :------------ | :----------------------------------------------------------------------------------------------------- | :----: | :------: | 74 | | choseDay | 选中某天调用的方法,返回选中的日期 YY-MM-DD | 无 | 否 | 75 | | changeMonth | 切换月份调用的方法,返回切换到某月的日期 YY-MM-DD | 无 | 否 | 76 | | isToday | 切换月份的时候,如果切到当前月份,调用这个方法,返回当前月今天 | 无 | 否 | 77 | | markDate | 如果需要某月的几天被标注,传当月的日期数组。如["2018/2/2","2018/2/6"]被会标注(相同的标记) | 空数组 | 否 | 78 | | markDateMore | 需要不同的标记如上Usage 最后一行示例代码 | 空数组 | 否 | 79 | | agoDayHide | 某个日期以前的不允许点击 时间戳长度是 10 位 | 0 | 否 | 80 | | futureDayHide | 某个日期以后的不允许点击 时间戳长度是 10 位 | 很大 | 否 | 81 | | sundayStart | 默认是周一开始 当是true的时候 是周日开始 | false | 否 | 82 | | textTop | 日历头部的文字,默认是 [ '日','一', '二', '三', '四', '五', '六'] ,可以根据自己的需求进行不同的修改。 | --- | 否 | 83 | 84 | ```javascript 85 | ✅ 在 Calendar标签上添加 ref 属性, 暴露出三个方法可以 直接切换月份 86 | 例如: 87 | 88 | ✅ this.$refs.Calendar.PreMonth(); //调用方法实现转到上个月 89 | ✅ this.$refs.Calendar.NextMonth(); //调用方法实现转到下个月 90 | ✅ this.$refs.Calendar.ChoseMonth('2018-12-12'); //调用方法实现转到某个月 91 | ✅ this.$refs.Calendar.ChoseMonth('2018-12-12',false); //跳转到18年12月12日 但是不选中当天 92 | //第二个参数 false表示不选中日期 。 93 | ``` 94 | ## 遇到错误--- 95 | - 遇到提示UglifyJs打包编译错误。 96 | 因为当前版本UglifyJs不知道编译es6 97 | 98 | 解决方法 99 | **npm install --save-dev babel-preset-env**
100 | 然后在根目录创建一个 .babelrc 文件 101 | 在输入,
102 | { 103 | "presets": ["env"] 104 | } 105 |
保存 重新build就OK了 106 | 107 | [babel-preset-env官方文档](https://github.com/babel/babel-preset-env) 108 | ## Other 109 | 110 | * src 下面的 App.vue 有 demo 可以参考 111 | * 如果有其他问题或者版本上, 功能上不兼容的 邮件沟通 zwhcoder@gmail.com,请具体 标明问题。 112 | -------------------------------------------------------------------------------- /src/vue-calendar-component/calendar.vue: -------------------------------------------------------------------------------- 1 | 135 | 163 | -------------------------------------------------------------------------------- /npm-debug.log: -------------------------------------------------------------------------------- 1 | 0 info it worked if it ends with ok 2 | 1 verbose cli [ '/usr/local/bin/node', 3 | 1 verbose cli '/usr/local/bin/npm', 4 | 1 verbose cli 'install', 5 | 1 verbose cli '-g', 6 | 1 verbose cli 'parcel' ] 7 | 2 info using npm@3.10.10 8 | 3 info using node@v6.12.0 9 | 4 silly loadCurrentTree Starting 10 | 5 silly install loadCurrentTree 11 | 6 silly install readGlobalPackageData 12 | 7 silly fetchPackageMetaData parcel 13 | 8 silly fetchNamedPackageData parcel 14 | 9 silly mapToRegistry name parcel 15 | 10 silly mapToRegistry using default registry 16 | 11 silly mapToRegistry registry https://registry.npm.taobao.org/ 17 | 12 silly mapToRegistry data Result { 18 | 12 silly mapToRegistry raw: 'parcel', 19 | 12 silly mapToRegistry scope: null, 20 | 12 silly mapToRegistry escapedName: 'parcel', 21 | 12 silly mapToRegistry name: 'parcel', 22 | 12 silly mapToRegistry rawSpec: '', 23 | 12 silly mapToRegistry spec: 'latest', 24 | 12 silly mapToRegistry type: 'tag' } 25 | 13 silly mapToRegistry uri https://registry.npm.taobao.org/parcel 26 | 14 verbose request uri https://registry.npm.taobao.org/parcel 27 | 15 verbose request no auth needed 28 | 16 info attempt registry request try #1 at 14:26:22 29 | 17 verbose request id 6d93321a503770a2 30 | 18 http request GET https://registry.npm.taobao.org/parcel 31 | 19 http 200 https://registry.npm.taobao.org/parcel 32 | 20 verbose headers { date: 'Tue, 16 Jan 2018 06:26:25 GMT', 33 | 20 verbose headers 'content-type': 'application/json; charset=utf-8', 34 | 20 verbose headers 'content-length': '3813', 35 | 20 verbose headers connection: 'keep-alive', 36 | 20 verbose headers 'x-current-requests': '1', 37 | 20 verbose headers vary: 'Origin', 38 | 20 verbose headers etag: '"ee5-jvk4exJZp+XfOz7gmsEbllqKe2k"', 39 | 20 verbose headers 'x-readtime': '26' } 40 | 21 silly get cb [ 200, 41 | 21 silly get { date: 'Tue, 16 Jan 2018 06:26:25 GMT', 42 | 21 silly get 'content-type': 'application/json; charset=utf-8', 43 | 21 silly get 'content-length': '3813', 44 | 21 silly get connection: 'keep-alive', 45 | 21 silly get 'x-current-requests': '1', 46 | 21 silly get vary: 'Origin', 47 | 21 silly get etag: '"ee5-jvk4exJZp+XfOz7gmsEbllqKe2k"', 48 | 21 silly get 'x-readtime': '26' } ] 49 | 22 verbose get saving parcel to /Users/zwh/.npm/registry.npm.taobao.org/parcel/.cache.json 50 | 23 verbose correctMkdir /Users/zwh/.npm correctMkdir not in flight; initializing 51 | 24 silly install normalizeTree 52 | 25 silly loadCurrentTree Finishing 53 | 26 silly loadIdealTree Starting 54 | 27 silly install loadIdealTree 55 | 28 silly cloneCurrentTree Starting 56 | 29 silly install cloneCurrentTreeToIdealTree 57 | 30 silly cloneCurrentTree Finishing 58 | 31 silly loadShrinkwrap Starting 59 | 32 silly install loadShrinkwrap 60 | 33 silly loadShrinkwrap Finishing 61 | 34 silly loadAllDepsIntoIdealTree Starting 62 | 35 silly install loadAllDepsIntoIdealTree 63 | 36 silly resolveWithNewModule parcel@0.0.1 checking installable status 64 | 37 silly cache add args [ 'parcel', null ] 65 | 38 verbose cache add spec parcel 66 | 39 silly cache add parsed spec Result { 67 | 39 silly cache add raw: 'parcel', 68 | 39 silly cache add scope: null, 69 | 39 silly cache add escapedName: 'parcel', 70 | 39 silly cache add name: 'parcel', 71 | 39 silly cache add rawSpec: '', 72 | 39 silly cache add spec: 'latest', 73 | 39 silly cache add type: 'tag' } 74 | 40 silly addNamed parcel@latest 75 | 41 verbose addNamed "latest" is being treated as a dist-tag for parcel 76 | 42 info addNameTag [ 'parcel', 'latest' ] 77 | 43 silly mapToRegistry name parcel 78 | 44 silly mapToRegistry using default registry 79 | 45 silly mapToRegistry registry https://registry.npm.taobao.org/ 80 | 46 silly mapToRegistry data Result { 81 | 46 silly mapToRegistry raw: 'parcel', 82 | 46 silly mapToRegistry scope: null, 83 | 46 silly mapToRegistry escapedName: 'parcel', 84 | 46 silly mapToRegistry name: 'parcel', 85 | 46 silly mapToRegistry rawSpec: '', 86 | 46 silly mapToRegistry spec: 'latest', 87 | 46 silly mapToRegistry type: 'tag' } 88 | 47 silly mapToRegistry uri https://registry.npm.taobao.org/parcel 89 | 48 verbose addNameTag registry:https://registry.npm.taobao.org/parcel not in flight; fetching 90 | 49 verbose get https://registry.npm.taobao.org/parcel not expired, no request 91 | 50 silly addNameTag next cb for parcel with tag latest 92 | 51 silly addNamed parcel@0.0.1 93 | 52 verbose addNamed "0.0.1" is a plain semver version for parcel 94 | 53 silly mapToRegistry name parcel 95 | 54 silly mapToRegistry using default registry 96 | 55 silly mapToRegistry registry https://registry.npm.taobao.org/ 97 | 56 silly mapToRegistry data Result { 98 | 56 silly mapToRegistry raw: 'parcel', 99 | 56 silly mapToRegistry scope: null, 100 | 56 silly mapToRegistry escapedName: 'parcel', 101 | 56 silly mapToRegistry name: 'parcel', 102 | 56 silly mapToRegistry rawSpec: '', 103 | 56 silly mapToRegistry spec: 'latest', 104 | 56 silly mapToRegistry type: 'tag' } 105 | 57 silly mapToRegistry uri https://registry.npm.taobao.org/parcel 106 | 58 verbose addRemoteTarball https://registry.npm.taobao.org/parcel/download/parcel-0.0.1.tgz not in flight; adding 107 | 59 verbose addRemoteTarball [ 'https://registry.npm.taobao.org/parcel/download/parcel-0.0.1.tgz', 108 | 59 verbose addRemoteTarball 'fb91c66015317c2a7db750c2ce7e54aa3715492c' ] 109 | 60 info retry fetch attempt 1 at 14:26:22 110 | 61 info attempt registry request try #1 at 14:26:22 111 | 62 http fetch GET https://registry.npm.taobao.org/parcel/download/parcel-0.0.1.tgz 112 | 63 http fetch 200 https://registry.npm.taobao.org/parcel/download/parcel-0.0.1.tgz 113 | 64 silly fetchAndShaCheck shasum fb91c66015317c2a7db750c2ce7e54aa3715492c 114 | 65 verbose addTmpTarball /var/folders/bd/nfr83lw93gx43jwww8tsc80h0000gn/T/npm-76435-b9cbf9b6/registry.npm.taobao.org/parcel/download/parcel-0.0.1.tgz not in flight; adding 115 | 66 verbose addTmpTarball already have metadata; skipping unpack for parcel@0.0.1 116 | 67 verbose correctMkdir /Users/zwh/.npm correctMkdir not in flight; initializing 117 | 68 silly cache afterAdd parcel@0.0.1 118 | 69 verbose afterAdd /Users/zwh/.npm/parcel/0.0.1/package/package.json not in flight; writing 119 | 70 verbose correctMkdir /Users/zwh/.npm correctMkdir not in flight; initializing 120 | 71 verbose afterAdd /Users/zwh/.npm/parcel/0.0.1/package/package.json written 121 | 72 silly fetchNamedPackageData commander 122 | 73 silly mapToRegistry name commander 123 | 74 silly mapToRegistry using default registry 124 | 75 silly mapToRegistry registry https://registry.npm.taobao.org/ 125 | 76 silly mapToRegistry data Result { 126 | 76 silly mapToRegistry raw: 'commander', 127 | 76 silly mapToRegistry scope: null, 128 | 76 silly mapToRegistry escapedName: 'commander', 129 | 76 silly mapToRegistry name: 'commander', 130 | 76 silly mapToRegistry rawSpec: '', 131 | 76 silly mapToRegistry spec: 'latest', 132 | 76 silly mapToRegistry type: 'tag' } 133 | 77 silly mapToRegistry uri https://registry.npm.taobao.org/commander 134 | 78 silly fetchNamedPackageData path-extra 135 | 79 silly mapToRegistry name path-extra 136 | 80 silly mapToRegistry using default registry 137 | 81 silly mapToRegistry registry https://registry.npm.taobao.org/ 138 | 82 silly mapToRegistry data Result { 139 | 82 silly mapToRegistry raw: 'path-extra', 140 | 82 silly mapToRegistry scope: null, 141 | 82 silly mapToRegistry escapedName: 'path-extra', 142 | 82 silly mapToRegistry name: 'path-extra', 143 | 82 silly mapToRegistry rawSpec: '', 144 | 82 silly mapToRegistry spec: 'latest', 145 | 82 silly mapToRegistry type: 'tag' } 146 | 83 silly mapToRegistry uri https://registry.npm.taobao.org/path-extra 147 | 84 silly fetchNamedPackageData aws-sdk 148 | 85 silly mapToRegistry name aws-sdk 149 | 86 silly mapToRegistry using default registry 150 | 87 silly mapToRegistry registry https://registry.npm.taobao.org/ 151 | 88 silly mapToRegistry data Result { 152 | 88 silly mapToRegistry raw: 'aws-sdk', 153 | 88 silly mapToRegistry scope: null, 154 | 88 silly mapToRegistry escapedName: 'aws-sdk', 155 | 88 silly mapToRegistry name: 'aws-sdk', 156 | 88 silly mapToRegistry rawSpec: '', 157 | 88 silly mapToRegistry spec: 'latest', 158 | 88 silly mapToRegistry type: 'tag' } 159 | 89 silly mapToRegistry uri https://registry.npm.taobao.org/aws-sdk 160 | 90 silly fetchNamedPackageData debug 161 | 91 silly mapToRegistry name debug 162 | 92 silly mapToRegistry using default registry 163 | 93 silly mapToRegistry registry https://registry.npm.taobao.org/ 164 | 94 silly mapToRegistry data Result { 165 | 94 silly mapToRegistry raw: 'debug', 166 | 94 silly mapToRegistry scope: null, 167 | 94 silly mapToRegistry escapedName: 'debug', 168 | 94 silly mapToRegistry name: 'debug', 169 | 94 silly mapToRegistry rawSpec: '', 170 | 94 silly mapToRegistry spec: 'latest', 171 | 94 silly mapToRegistry type: 'tag' } 172 | 95 silly mapToRegistry uri https://registry.npm.taobao.org/debug 173 | 96 verbose request uri https://registry.npm.taobao.org/path-extra 174 | 97 verbose request no auth needed 175 | 98 info attempt registry request try #1 at 14:26:22 176 | 99 http request GET https://registry.npm.taobao.org/path-extra 177 | 100 verbose request uri https://registry.npm.taobao.org/aws-sdk 178 | 101 verbose request no auth needed 179 | 102 info attempt registry request try #1 at 14:26:22 180 | 103 http request GET https://registry.npm.taobao.org/aws-sdk 181 | 104 verbose request uri https://registry.npm.taobao.org/commander 182 | 105 verbose request no auth needed 183 | 106 info attempt registry request try #1 at 14:26:22 184 | 107 verbose etag "151e0-stVFTSsI6RoVPC363ZkCYDhFlvY" 185 | 108 http request GET https://registry.npm.taobao.org/commander 186 | 109 verbose request uri https://registry.npm.taobao.org/debug 187 | 110 verbose request no auth needed 188 | 111 info attempt registry request try #1 at 14:26:22 189 | 112 verbose etag "1c1ec-0+i0MUO8v/rcZjcQGuY+6rsa28Y" 190 | 113 http request GET https://registry.npm.taobao.org/debug 191 | 114 http 200 https://registry.npm.taobao.org/path-extra 192 | 115 verbose headers { date: 'Tue, 16 Jan 2018 06:26:25 GMT', 193 | 115 verbose headers 'content-type': 'application/json; charset=utf-8', 194 | 115 verbose headers 'content-length': '26723', 195 | 115 verbose headers connection: 'keep-alive', 196 | 115 verbose headers 'x-current-requests': '1', 197 | 115 verbose headers vary: 'Origin', 198 | 115 verbose headers etag: '"6863-Fa/st2R3w4sMTRKz9rtRtcQT2lU"', 199 | 115 verbose headers 'x-readtime': '30' } 200 | 116 silly get cb [ 200, 201 | 116 silly get { date: 'Tue, 16 Jan 2018 06:26:25 GMT', 202 | 116 silly get 'content-type': 'application/json; charset=utf-8', 203 | 116 silly get 'content-length': '26723', 204 | 116 silly get connection: 'keep-alive', 205 | 116 silly get 'x-current-requests': '1', 206 | 116 silly get vary: 'Origin', 207 | 116 silly get etag: '"6863-Fa/st2R3w4sMTRKz9rtRtcQT2lU"', 208 | 116 silly get 'x-readtime': '30' } ] 209 | 117 verbose get saving path-extra to /Users/zwh/.npm/registry.npm.taobao.org/path-extra/.cache.json 210 | 118 verbose correctMkdir /Users/zwh/.npm correctMkdir not in flight; initializing 211 | 119 silly resolveWithNewModule path-extra@0.1.1 checking installable status 212 | 120 silly cache add args [ 'path-extra@0.1.x', null ] 213 | 121 verbose cache add spec path-extra@0.1.x 214 | 122 silly cache add parsed spec Result { 215 | 122 silly cache add raw: 'path-extra@0.1.x', 216 | 122 silly cache add scope: null, 217 | 122 silly cache add escapedName: 'path-extra', 218 | 122 silly cache add name: 'path-extra', 219 | 122 silly cache add rawSpec: '0.1.x', 220 | 122 silly cache add spec: '>=0.1.0 <0.2.0', 221 | 122 silly cache add type: 'range' } 222 | 123 silly addNamed path-extra@>=0.1.0 <0.2.0 223 | 124 verbose addNamed ">=0.1.0 <0.2.0" is a valid semver range for path-extra 224 | 125 silly addNameRange { name: 'path-extra', range: '>=0.1.0 <0.2.0', hasData: false } 225 | 126 silly mapToRegistry name path-extra 226 | 127 silly mapToRegistry using default registry 227 | 128 silly mapToRegistry registry https://registry.npm.taobao.org/ 228 | 129 silly mapToRegistry data Result { 229 | 129 silly mapToRegistry raw: 'path-extra', 230 | 129 silly mapToRegistry scope: null, 231 | 129 silly mapToRegistry escapedName: 'path-extra', 232 | 129 silly mapToRegistry name: 'path-extra', 233 | 129 silly mapToRegistry rawSpec: '', 234 | 129 silly mapToRegistry spec: 'latest', 235 | 129 silly mapToRegistry type: 'tag' } 236 | 130 silly mapToRegistry uri https://registry.npm.taobao.org/path-extra 237 | 131 verbose addNameRange registry:https://registry.npm.taobao.org/path-extra not in flight; fetching 238 | 132 verbose get https://registry.npm.taobao.org/path-extra not expired, no request 239 | 133 silly addNameRange number 2 { name: 'path-extra', range: '>=0.1.0 <0.2.0', hasData: true } 240 | 134 silly addNameRange versions [ 'path-extra', 241 | 134 silly addNameRange [ '4.2.1', 242 | 134 silly addNameRange '4.2.0', 243 | 134 silly addNameRange '4.1.0', 244 | 134 silly addNameRange '4.0.0', 245 | 134 silly addNameRange '3.0.0', 246 | 134 silly addNameRange '2.0.0', 247 | 134 silly addNameRange '1.0.3', 248 | 134 silly addNameRange '1.0.2', 249 | 134 silly addNameRange '1.0.1', 250 | 134 silly addNameRange '1.0.0', 251 | 134 silly addNameRange '0.3.0', 252 | 134 silly addNameRange '0.2.1', 253 | 134 silly addNameRange '0.2.0', 254 | 134 silly addNameRange '0.1.1', 255 | 134 silly addNameRange '0.1.0', 256 | 134 silly addNameRange '0.0.3', 257 | 134 silly addNameRange '0.0.2', 258 | 134 silly addNameRange '0.0.1' ] ] 259 | 135 silly addNamed path-extra@0.1.1 260 | 136 verbose addNamed "0.1.1" is a plain semver version for path-extra 261 | 137 silly mapToRegistry name path-extra 262 | 138 silly mapToRegistry using default registry 263 | 139 silly mapToRegistry registry https://registry.npm.taobao.org/ 264 | 140 silly mapToRegistry data Result { 265 | 140 silly mapToRegistry raw: 'path-extra', 266 | 140 silly mapToRegistry scope: null, 267 | 140 silly mapToRegistry escapedName: 'path-extra', 268 | 140 silly mapToRegistry name: 'path-extra', 269 | 140 silly mapToRegistry rawSpec: '', 270 | 140 silly mapToRegistry spec: 'latest', 271 | 140 silly mapToRegistry type: 'tag' } 272 | 141 silly mapToRegistry uri https://registry.npm.taobao.org/path-extra 273 | 142 verbose addRemoteTarball https://registry.npm.taobao.org/path-extra/download/path-extra-0.1.1.tgz not in flight; adding 274 | 143 verbose addRemoteTarball [ 'https://registry.npm.taobao.org/path-extra/download/path-extra-0.1.1.tgz', 275 | 143 verbose addRemoteTarball '698294f0e237889f00e356b993f76d5340fb5615' ] 276 | 144 info retry fetch attempt 1 at 14:26:23 277 | 145 info attempt registry request try #1 at 14:26:23 278 | 146 http fetch GET https://registry.npm.taobao.org/path-extra/download/path-extra-0.1.1.tgz 279 | 147 http fetch 200 https://registry.npm.taobao.org/path-extra/download/path-extra-0.1.1.tgz 280 | 148 silly fetchAndShaCheck shasum 698294f0e237889f00e356b993f76d5340fb5615 281 | 149 verbose addTmpTarball /var/folders/bd/nfr83lw93gx43jwww8tsc80h0000gn/T/npm-76435-b9cbf9b6/registry.npm.taobao.org/path-extra/download/path-extra-0.1.1.tgz not in flight; adding 282 | 150 verbose addTmpTarball already have metadata; skipping unpack for path-extra@0.1.1 283 | 151 verbose correctMkdir /Users/zwh/.npm correctMkdir not in flight; initializing 284 | 152 silly cache afterAdd path-extra@0.1.1 285 | 153 verbose afterAdd /Users/zwh/.npm/path-extra/0.1.1/package/package.json not in flight; writing 286 | 154 verbose correctMkdir /Users/zwh/.npm correctMkdir not in flight; initializing 287 | 155 verbose afterAdd /Users/zwh/.npm/path-extra/0.1.1/package/package.json written 288 | 156 http 200 https://registry.npm.taobao.org/commander 289 | 157 verbose headers { date: 'Tue, 16 Jan 2018 06:26:25 GMT', 290 | 157 verbose headers 'content-type': 'application/json; charset=utf-8', 291 | 157 verbose headers 'content-length': '94526', 292 | 157 verbose headers connection: 'keep-alive', 293 | 157 verbose headers 'x-current-requests': '1', 294 | 157 verbose headers etag: '"1713e-AO8RPj21QJpd9XDWf2b1CzqYiAU"', 295 | 157 verbose headers 'x-readtime': '57' } 296 | 158 silly get cb [ 200, 297 | 158 silly get { date: 'Tue, 16 Jan 2018 06:26:25 GMT', 298 | 158 silly get 'content-type': 'application/json; charset=utf-8', 299 | 158 silly get 'content-length': '94526', 300 | 158 silly get connection: 'keep-alive', 301 | 158 silly get 'x-current-requests': '1', 302 | 158 silly get etag: '"1713e-AO8RPj21QJpd9XDWf2b1CzqYiAU"', 303 | 158 silly get 'x-readtime': '57' } ] 304 | 159 verbose get saving commander to /Users/zwh/.npm/registry.npm.taobao.org/commander/.cache.json 305 | 160 verbose correctMkdir /Users/zwh/.npm correctMkdir not in flight; initializing 306 | 161 silly resolveWithNewModule commander@1.3.2 checking installable status 307 | 162 silly cache add args [ 'commander@1.x.x', null ] 308 | 163 verbose cache add spec commander@1.x.x 309 | 164 silly cache add parsed spec Result { 310 | 164 silly cache add raw: 'commander@1.x.x', 311 | 164 silly cache add scope: null, 312 | 164 silly cache add escapedName: 'commander', 313 | 164 silly cache add name: 'commander', 314 | 164 silly cache add rawSpec: '1.x.x', 315 | 164 silly cache add spec: '>=1.0.0 <2.0.0', 316 | 164 silly cache add type: 'range' } 317 | 165 silly addNamed commander@>=1.0.0 <2.0.0 318 | 166 verbose addNamed ">=1.0.0 <2.0.0" is a valid semver range for commander 319 | 167 silly addNameRange { name: 'commander', range: '>=1.0.0 <2.0.0', hasData: false } 320 | 168 silly mapToRegistry name commander 321 | 169 silly mapToRegistry using default registry 322 | 170 silly mapToRegistry registry https://registry.npm.taobao.org/ 323 | 171 silly mapToRegistry data Result { 324 | 171 silly mapToRegistry raw: 'commander', 325 | 171 silly mapToRegistry scope: null, 326 | 171 silly mapToRegistry escapedName: 'commander', 327 | 171 silly mapToRegistry name: 'commander', 328 | 171 silly mapToRegistry rawSpec: '', 329 | 171 silly mapToRegistry spec: 'latest', 330 | 171 silly mapToRegistry type: 'tag' } 331 | 172 silly mapToRegistry uri https://registry.npm.taobao.org/commander 332 | 173 verbose addNameRange registry:https://registry.npm.taobao.org/commander not in flight; fetching 333 | 174 verbose get https://registry.npm.taobao.org/commander not expired, no request 334 | 175 silly addNameRange number 2 { name: 'commander', range: '>=1.0.0 <2.0.0', hasData: true } 335 | 176 silly addNameRange versions [ 'commander', 336 | 176 silly addNameRange [ '2.13.0', 337 | 176 silly addNameRange '2.12.2', 338 | 176 silly addNameRange '2.12.1', 339 | 176 silly addNameRange '2.12.0', 340 | 176 silly addNameRange '2.11.0', 341 | 176 silly addNameRange '2.10.0', 342 | 176 silly addNameRange '2.9.0', 343 | 176 silly addNameRange '2.8.1', 344 | 176 silly addNameRange '2.8.0', 345 | 176 silly addNameRange '2.7.1', 346 | 176 silly addNameRange '2.7.0', 347 | 176 silly addNameRange '2.6.0', 348 | 176 silly addNameRange '2.5.1', 349 | 176 silly addNameRange '2.5.0', 350 | 176 silly addNameRange '2.4.0', 351 | 176 silly addNameRange '2.3.0', 352 | 176 silly addNameRange '2.2.0', 353 | 176 silly addNameRange '2.1.0', 354 | 176 silly addNameRange '2.0.0', 355 | 176 silly addNameRange '1.3.2', 356 | 176 silly addNameRange '1.3.1', 357 | 176 silly addNameRange '1.3.0', 358 | 176 silly addNameRange '1.2.0', 359 | 176 silly addNameRange '1.1.1', 360 | 176 silly addNameRange '1.1.0', 361 | 176 silly addNameRange '1.0.5', 362 | 176 silly addNameRange '1.0.4', 363 | 176 silly addNameRange '1.0.3', 364 | 176 silly addNameRange '1.0.2', 365 | 176 silly addNameRange '1.0.1', 366 | 176 silly addNameRange '1.0.0', 367 | 176 silly addNameRange '0.5.2', 368 | 176 silly addNameRange '0.6.1', 369 | 176 silly addNameRange '0.6.0', 370 | 176 silly addNameRange '0.5.1', 371 | 176 silly addNameRange '0.5.0', 372 | 176 silly addNameRange '0.4.3', 373 | 176 silly addNameRange '0.4.2', 374 | 176 silly addNameRange '0.4.1', 375 | 176 silly addNameRange '0.4.0', 376 | 176 silly addNameRange '0.3.3', 377 | 176 silly addNameRange '0.3.2', 378 | 176 silly addNameRange '0.3.1', 379 | 176 silly addNameRange '0.3.0', 380 | 176 silly addNameRange '0.2.1', 381 | 176 silly addNameRange '0.2.0', 382 | 176 silly addNameRange '0.1.0', 383 | 176 silly addNameRange '0.0.5', 384 | 176 silly addNameRange '0.0.4', 385 | 176 silly addNameRange '0.0.3', 386 | 176 silly addNameRange '0.0.1' ] ] 387 | 177 silly addNamed commander@1.3.2 388 | 178 verbose addNamed "1.3.2" is a plain semver version for commander 389 | 179 silly mapToRegistry name commander 390 | 180 silly mapToRegistry using default registry 391 | 181 silly mapToRegistry registry https://registry.npm.taobao.org/ 392 | 182 silly mapToRegistry data Result { 393 | 182 silly mapToRegistry raw: 'commander', 394 | 182 silly mapToRegistry scope: null, 395 | 182 silly mapToRegistry escapedName: 'commander', 396 | 182 silly mapToRegistry name: 'commander', 397 | 182 silly mapToRegistry rawSpec: '', 398 | 182 silly mapToRegistry spec: 'latest', 399 | 182 silly mapToRegistry type: 'tag' } 400 | 183 silly mapToRegistry uri https://registry.npm.taobao.org/commander 401 | 184 verbose addRemoteTarball https://registry.npm.taobao.org/commander/download/commander-1.3.2.tgz not in flight; adding 402 | 185 verbose addRemoteTarball [ 'https://registry.npm.taobao.org/commander/download/commander-1.3.2.tgz', 403 | 185 verbose addRemoteTarball '8a8f30ec670a6fdd64af52f1914b907d79ead5b5' ] 404 | 186 info retry fetch attempt 1 at 14:26:23 405 | 187 info attempt registry request try #1 at 14:26:23 406 | 188 http fetch GET https://registry.npm.taobao.org/commander/download/commander-1.3.2.tgz 407 | 189 http 200 https://registry.npm.taobao.org/debug 408 | 190 verbose headers { date: 'Tue, 16 Jan 2018 06:26:25 GMT', 409 | 190 verbose headers 'content-type': 'application/json; charset=utf-8', 410 | 190 verbose headers 'content-length': '115857', 411 | 190 verbose headers connection: 'keep-alive', 412 | 190 verbose headers 'x-current-requests': '1', 413 | 190 verbose headers vary: 'Origin', 414 | 190 verbose headers etag: '"1c491-PMLlQ/OhaVy8Tdj3hAuUXDIK+N4"', 415 | 190 verbose headers 'x-readtime': '52' } 416 | 191 silly get cb [ 200, 417 | 191 silly get { date: 'Tue, 16 Jan 2018 06:26:25 GMT', 418 | 191 silly get 'content-type': 'application/json; charset=utf-8', 419 | 191 silly get 'content-length': '115857', 420 | 191 silly get connection: 'keep-alive', 421 | 191 silly get 'x-current-requests': '1', 422 | 191 silly get vary: 'Origin', 423 | 191 silly get etag: '"1c491-PMLlQ/OhaVy8Tdj3hAuUXDIK+N4"', 424 | 191 silly get 'x-readtime': '52' } ] 425 | 192 verbose get saving debug to /Users/zwh/.npm/registry.npm.taobao.org/debug/.cache.json 426 | 193 verbose correctMkdir /Users/zwh/.npm correctMkdir not in flight; initializing 427 | 194 silly resolveWithNewModule debug@0.7.4 checking installable status 428 | 195 silly cache add args [ 'debug@0.7.x', null ] 429 | 196 verbose cache add spec debug@0.7.x 430 | 197 silly cache add parsed spec Result { 431 | 197 silly cache add raw: 'debug@0.7.x', 432 | 197 silly cache add scope: null, 433 | 197 silly cache add escapedName: 'debug', 434 | 197 silly cache add name: 'debug', 435 | 197 silly cache add rawSpec: '0.7.x', 436 | 197 silly cache add spec: '>=0.7.0 <0.8.0', 437 | 197 silly cache add type: 'range' } 438 | 198 silly addNamed debug@>=0.7.0 <0.8.0 439 | 199 verbose addNamed ">=0.7.0 <0.8.0" is a valid semver range for debug 440 | 200 silly addNameRange { name: 'debug', range: '>=0.7.0 <0.8.0', hasData: false } 441 | 201 silly mapToRegistry name debug 442 | 202 silly mapToRegistry using default registry 443 | 203 silly mapToRegistry registry https://registry.npm.taobao.org/ 444 | 204 silly mapToRegistry data Result { 445 | 204 silly mapToRegistry raw: 'debug', 446 | 204 silly mapToRegistry scope: null, 447 | 204 silly mapToRegistry escapedName: 'debug', 448 | 204 silly mapToRegistry name: 'debug', 449 | 204 silly mapToRegistry rawSpec: '', 450 | 204 silly mapToRegistry spec: 'latest', 451 | 204 silly mapToRegistry type: 'tag' } 452 | 205 silly mapToRegistry uri https://registry.npm.taobao.org/debug 453 | 206 verbose addNameRange registry:https://registry.npm.taobao.org/debug not in flight; fetching 454 | 207 verbose get https://registry.npm.taobao.org/debug not expired, no request 455 | 208 silly addNameRange number 2 { name: 'debug', range: '>=0.7.0 <0.8.0', hasData: true } 456 | 209 silly addNameRange versions [ 'debug', 457 | 209 silly addNameRange [ '3.1.0', 458 | 209 silly addNameRange '2.6.9', 459 | 209 silly addNameRange '3.0.1', 460 | 209 silly addNameRange '3.0.0', 461 | 209 silly addNameRange '1.0.5', 462 | 209 silly addNameRange '2.6.8', 463 | 209 silly addNameRange '2.6.7', 464 | 209 silly addNameRange '2.6.6', 465 | 209 silly addNameRange '2.6.5', 466 | 209 silly addNameRange '2.6.4', 467 | 209 silly addNameRange '2.6.3', 468 | 209 silly addNameRange '2.6.2', 469 | 209 silly addNameRange '2.6.1', 470 | 209 silly addNameRange '2.6.0', 471 | 209 silly addNameRange '2.5.2', 472 | 209 silly addNameRange '2.5.1', 473 | 209 silly addNameRange '2.5.0', 474 | 209 silly addNameRange '2.4.5', 475 | 209 silly addNameRange '2.4.4', 476 | 209 silly addNameRange '2.4.3', 477 | 209 silly addNameRange '2.4.2', 478 | 209 silly addNameRange '2.4.1', 479 | 209 silly addNameRange '2.4.0', 480 | 209 silly addNameRange '2.3.3', 481 | 209 silly addNameRange '2.3.2', 482 | 209 silly addNameRange '2.3.1', 483 | 209 silly addNameRange '2.3.0', 484 | 209 silly addNameRange '2.2.0', 485 | 209 silly addNameRange '2.1.3', 486 | 209 silly addNameRange '2.1.2', 487 | 209 silly addNameRange '2.1.1', 488 | 209 silly addNameRange '2.1.0', 489 | 209 silly addNameRange '2.0.0', 490 | 209 silly addNameRange '1.0.4', 491 | 209 silly addNameRange '1.0.3', 492 | 209 silly addNameRange '1.0.2', 493 | 209 silly addNameRange '1.0.1', 494 | 209 silly addNameRange '1.0.0', 495 | 209 silly addNameRange '0.8.1', 496 | 209 silly addNameRange '0.8.0', 497 | 209 silly addNameRange '0.7.4', 498 | 209 silly addNameRange '0.7.3', 499 | 209 silly addNameRange '0.7.2', 500 | 209 silly addNameRange '0.7.1', 501 | 209 silly addNameRange '0.7.0', 502 | 209 silly addNameRange '0.6.0', 503 | 209 silly addNameRange '0.5.0', 504 | 209 silly addNameRange '0.4.1', 505 | 209 silly addNameRange '0.4.0', 506 | 209 silly addNameRange '0.3.0', 507 | 209 silly addNameRange '0.2.0', 508 | 209 silly addNameRange '0.1.0', 509 | 209 silly addNameRange '0.0.1' ] ] 510 | 210 silly addNamed debug@0.7.4 511 | 211 verbose addNamed "0.7.4" is a plain semver version for debug 512 | 212 http fetch 200 https://registry.npm.taobao.org/commander/download/commander-1.3.2.tgz 513 | 213 silly mapToRegistry name debug 514 | 214 silly mapToRegistry using default registry 515 | 215 silly mapToRegistry registry https://registry.npm.taobao.org/ 516 | 216 silly mapToRegistry data Result { 517 | 216 silly mapToRegistry raw: 'debug', 518 | 216 silly mapToRegistry scope: null, 519 | 216 silly mapToRegistry escapedName: 'debug', 520 | 216 silly mapToRegistry name: 'debug', 521 | 216 silly mapToRegistry rawSpec: '', 522 | 216 silly mapToRegistry spec: 'latest', 523 | 216 silly mapToRegistry type: 'tag' } 524 | 217 silly mapToRegistry uri https://registry.npm.taobao.org/debug 525 | 218 verbose addRemoteTarball https://registry.npm.taobao.org/debug/download/debug-0.7.4.tgz not in flight; adding 526 | 219 verbose addRemoteTarball [ 'https://registry.npm.taobao.org/debug/download/debug-0.7.4.tgz', 527 | 219 verbose addRemoteTarball '06e1ea8082c2cb14e39806e22e2f6f757f92af39' ] 528 | 220 info retry fetch attempt 1 at 14:26:23 529 | 221 info attempt registry request try #1 at 14:26:23 530 | 222 http fetch GET https://registry.npm.taobao.org/debug/download/debug-0.7.4.tgz 531 | 223 silly fetchAndShaCheck shasum 8a8f30ec670a6fdd64af52f1914b907d79ead5b5 532 | 224 verbose addTmpTarball /var/folders/bd/nfr83lw93gx43jwww8tsc80h0000gn/T/npm-76435-b9cbf9b6/registry.npm.taobao.org/commander/download/commander-1.3.2.tgz not in flight; adding 533 | 225 verbose addTmpTarball already have metadata; skipping unpack for commander@1.3.2 534 | 226 verbose correctMkdir /Users/zwh/.npm correctMkdir not in flight; initializing 535 | 227 silly cache afterAdd commander@1.3.2 536 | 228 verbose afterAdd /Users/zwh/.npm/commander/1.3.2/package/package.json not in flight; writing 537 | 229 verbose correctMkdir /Users/zwh/.npm correctMkdir not in flight; initializing 538 | 230 verbose afterAdd /Users/zwh/.npm/commander/1.3.2/package/package.json written 539 | 231 http fetch 200 https://registry.npm.taobao.org/debug/download/debug-0.7.4.tgz 540 | 232 silly fetchAndShaCheck shasum 06e1ea8082c2cb14e39806e22e2f6f757f92af39 541 | 233 verbose addTmpTarball /var/folders/bd/nfr83lw93gx43jwww8tsc80h0000gn/T/npm-76435-b9cbf9b6/registry.npm.taobao.org/debug/download/debug-0.7.4.tgz not in flight; adding 542 | 234 verbose addTmpTarball already have metadata; skipping unpack for debug@0.7.4 543 | 235 verbose correctMkdir /Users/zwh/.npm correctMkdir not in flight; initializing 544 | 236 silly cache afterAdd debug@0.7.4 545 | 237 verbose afterAdd /Users/zwh/.npm/debug/0.7.4/package/package.json not in flight; writing 546 | 238 verbose correctMkdir /Users/zwh/.npm correctMkdir not in flight; initializing 547 | 239 verbose afterAdd /Users/zwh/.npm/debug/0.7.4/package/package.json written 548 | 240 http 200 https://registry.npm.taobao.org/aws-sdk 549 | 241 verbose headers { date: 'Tue, 16 Jan 2018 06:26:25 GMT', 550 | 241 verbose headers 'content-type': 'application/json; charset=utf-8', 551 | 241 verbose headers 'content-length': '1726692', 552 | 241 verbose headers connection: 'keep-alive', 553 | 241 verbose headers 'x-current-requests': '1', 554 | 241 verbose headers vary: 'Origin', 555 | 241 verbose headers etag: '"1a58e4-iFMVGXzcVq/E7if5Rh0dNkbmbA8"', 556 | 241 verbose headers 'x-readtime': '140' } 557 | 242 silly get cb [ 200, 558 | 242 silly get { date: 'Tue, 16 Jan 2018 06:26:25 GMT', 559 | 242 silly get 'content-type': 'application/json; charset=utf-8', 560 | 242 silly get 'content-length': '1726692', 561 | 242 silly get connection: 'keep-alive', 562 | 242 silly get 'x-current-requests': '1', 563 | 242 silly get vary: 'Origin', 564 | 242 silly get etag: '"1a58e4-iFMVGXzcVq/E7if5Rh0dNkbmbA8"', 565 | 242 silly get 'x-readtime': '140' } ] 566 | 243 verbose get saving aws-sdk to /Users/zwh/.npm/registry.npm.taobao.org/aws-sdk/.cache.json 567 | 244 verbose correctMkdir /Users/zwh/.npm correctMkdir not in flight; initializing 568 | 245 silly fetchPackageMetaData Error: No compatible version found: aws-sdk@0.9.x 569 | 245 silly fetchPackageMetaData Valid install targets: 570 | 245 silly fetchPackageMetaData 2.182.0, 2.181.0, 2.180.0, 2.179.0, 2.178.0, 2.177.0, 2.176.0, 2.175.0, 2.174.0, 2.173.0, 2.172.0, 2.171.0, 2.170.0, 2.169.0, 2.168.0, 2.167.0, 2.166.0, 2.165.0, 2.164.0, 2.163.0, 2.162.0, 2.161.0, 2.160.0, 2.159.0, 2.158.0, 2.157.0, 2.156.0, 2.155.0, 2.154.0, 2.153.0, 2.152.0, 2.151.0, 2.150.0, 2.149.0, 2.148.0, 2.147.0, 2.146.0, 2.145.0, 2.144.0, 2.143.0, 2.142.0, 2.141.0, 2.140.0, 2.139.0, 2.138.0, 2.137.0, 2.136.0, 2.135.0, 2.134.0, 2.133.0, 2.132.0, 2.131.0, 2.130.0, 2.129.0, 2.128.0, 2.127.0, 2.126.0, 2.125.0, 2.124.0, 2.123.0, 2.122.0, 2.121.0, 2.120.0, 2.119.0, 2.118.0, 2.117.0, 2.116.0, 2.115.0, 2.114.0, 2.113.0, 2.112.0, 2.111.0, 2.110.0, 2.109.0, 2.108.0, 2.107.0, 2.106.0, 2.105.0, 2.104.0, 2.103.0, 2.102.0, 2.101.0, 2.100.0, 2.99.0, 2.98.0, 2.97.0, 2.96.0, 2.95.0, 2.94.0, 2.93.0, 2.92.0, 2.91.0, 2.90.0, 2.89.0, 2.88.0, 2.87.0, 2.86.0, 2.85.0, 2.84.0, 2.83.0, 2.82.0, 2.81.0, 2.80.0, 2.79.0, 2.78.0, 2.77.0, 2.76.0, 2.75.0, 2.74.0, 2.73.0, 2.72.0, 2.71.0, 2.70.0, 2.69.0, 2.68.0, 2.67.0, 2.66.0, 2.65.0, 2.64.0, 2.63.0, 2.62.0, 2.61.0, 2.60.0, 2.59.0, 2.58.0, 2.57.0, 2.56.0, 2.55.0, 2.54.0, 2.53.0, 2.52.0, 2.51.0, 2.50.0, 2.49.0, 2.48.0, 2.47.0, 2.46.0, 2.45.0, 2.44.0, 2.43.0, 2.42.0, 2.41.0, 2.40.0, 2.39.0, 2.38.0, 2.37.0, 2.36.0, 2.35.0, 2.34.0, 2.33.0, 2.32.0, 2.31.0, 2.30.0, 2.29.0, 2.28.0, 2.27.0, 2.26.0, 2.25.0, 2.24.0, 2.23.0, 2.22.0, 2.21.0, 2.20.0, 2.19.0, 2.18.0, 2.17.0, 2.16.0, 2.15.0, 2.14.0, 2.13.0, 2.12.0, 2.11.0, 2.10.0, 2.9.0, 2.8.0, 2.7.28, 2.7.27, 2.7.26, 2.7.25, 2.7.24, 2.7.23, 2.7.22, 2.7.21, 2.7.20, 2.7.19, 2.7.18, 2.7.17, 2.7.16, 2.7.15, 2.7.14, 2.7.13, 2.7.12, 2.7.11, 2.7.10, 2.7.9, 2.7.8, 2.7.7, 2.7.6, 2.7.5, 2.7.4, 2.7.3, 2.7.2, 2.7.1, 2.7.0, 2.6.15, 2.6.14, 2.6.13, 2.6.12, 2.6.11, 2.6.10, 2.6.9, 2.6.8, 2.6.7, 2.6.6, 2.6.5, 2.6.4, 2.6.3, 2.6.2, 2.6.1, 2.6.0, 2.5.6, 2.5.5, 2.5.4, 2.5.3, 2.5.2, 2.5.1, 2.5.0, 2.4.14, 2.4.13, 2.4.12, 2.4.11, 2.4.10, 2.4.9, 2.4.8, 2.4.7, 2.4.6, 2.4.5, 2.4.4, 2.4.3, 2.4.2, 2.4.1, 2.4.0, 2.3.19, 2.3.18, 2.3.17, 2.3.16, 2.3.15, 2.3.14, 2.3.13, 2.3.12, 2.3.11, 2.3.10, 2.3.9, 2.3.8, 2.3.7, 2.3.6, 2.3.5, 2.3.4, 2.3.3, 2.3.2, 2.3.1, 2.3.0, 2.2.48, 2.2.47, 2.2.46, 2.2.45, 2.2.44, 2.2.43, 2.2.42, 2.2.41, 2.2.40, 2.2.39, 2.2.38, 2.2.37, 2.2.36, 2.2.35, 2.2.34, 2.2.33, 2.2.32, 2.2.31, 2.2.30, 2.2.29, 2.2.28, 2.2.27, 2.2.26, 2.2.25, 2.2.24, 2.2.23, 2.2.22, 2.2.21, 2.2.20, 2.2.19, 2.2.18, 2.2.17, 2.2.16, 2.2.15, 2.2.14, 2.2.13, 2.2.12, 2.2.11, 2.2.10, 2.2.9, 2.2.8, 2.2.7, 2.2.6, 2.2.5, 2.2.4, 2.2.3, 2.2.2, 2.2.1, 2.2.0, 2.1.50, 2.1.49, 2.1.48, 2.1.47, 2.1.46, 2.1.45, 2.1.44, 2.1.43, 2.1.42, 2.1.41, 2.1.40, 2.1.39, 2.1.38, 2.1.37, 2.1.36, 2.1.35, 2.1.34, 2.1.33, 2.1.32, 2.1.31, 2.1.30, 2.1.29, 2.1.28, 2.1.27, 2.1.26, 2.1.25, 2.1.24, 2.1.23, 2.1.22, 2.1.21, 2.1.20, 2.1.19, 2.1.18, 2.1.17, 2.1.16, 2.1.15, 2.1.14, 2.1.13, 2.1.12, 2.1.11, 2.1.10, 2.1.9, 2.1.8, 2.1.7, 2.1.6, 2.1.5, 2.1.4, 2.1.3, 2.1.2, 2.1.1, 2.1.0, 2.0.31, 2.0.30, 2.0.29, 2.0.28, 2.0.27, 2.0.26, 2.0.25, 2.0.24, 2.0.23, 2.0.22, 2.0.21, 2.0.19, 2.0.18, 2.0.17, 2.0.16, 2.0.15, 2.0.14, 2.0.13, 2.0.12, 2.0.11, 2.0.10, 2.0.9, 2.0.8, 2.0.7, 2.0.6, 2.0.5, 2.0.4, 2.0.3, 2.0.2, 2.0.1, 2.0.0-rc9, 2.0.0-rc8, 2.0.0-rc7, 2.0.0-rc6, 2.0.0-rc5, 2.0.0-rc4, 2.0.0-rc3, 2.0.0-rc2, 2.0.0-rc13, 2.0.0-rc12, 2.0.0-rc11, 2.0.0-rc10, 2.0.0-rc1, 2.0.0-rc.20, 2.0.0-rc.19, 2.0.0-rc.18, 2.0.0-rc.17, 2.0.0-rc.16, 2.0.0-rc.15, 2.0.0-rc.14, 1.18.0, 1.17.3, 1.17.2, 1.17.1, 1.17.0, 1.16.0, 1.15.0, 1.14.0, 1.13.0, 1.12.0, 1.10.0, 1.9.0, 1.8.1, 1.8.0, 1.7.1, 1.7.0, 1.6.0, 1.5.2, 1.5.1, 1.5.0, 1.4.1, 1.4.0, 1.3.2, 1.3.1, 1.3.0, 1.2.0, 1.1.0, 1.0.0, 0.9.9-pre.10, 0.9.8-pre.9, 0.9.7-pre.8, 0.9.6-pre.7, 0.9.5-pre.6, 0.9.4-pre.5, 0.9.3-pre.4, 0.9.2-pre.3, 0.9.1-pre.2, 0.9.0-pre.1 571 | 245 silly fetchPackageMetaData 572 | 245 silly fetchPackageMetaData at pickVersionFromRegistryDocument (/usr/local/lib/node_modules/npm/lib/fetch-package-metadata.js:178:16) 573 | 245 silly fetchPackageMetaData at /usr/local/lib/node_modules/npm/node_modules/iferr/index.js:13:50 574 | 245 silly fetchPackageMetaData at /usr/local/lib/node_modules/npm/lib/utils/pulse-till-done.js:20:8 575 | 245 silly fetchPackageMetaData at saved (/usr/local/lib/node_modules/npm/lib/cache/caching-client.js:174:7) 576 | 245 silly fetchPackageMetaData at /usr/local/lib/node_modules/npm/node_modules/graceful-fs/polyfills.js:241:18 577 | 245 silly fetchPackageMetaData at FSReqWrap.oncomplete (fs.js:123:15) 578 | 245 silly fetchPackageMetaData error for aws-sdk@0.9.x { Error: No compatible version found: aws-sdk@0.9.x 579 | 245 silly fetchPackageMetaData Valid install targets: 580 | 245 silly fetchPackageMetaData 2.182.0, 2.181.0, 2.180.0, 2.179.0, 2.178.0, 2.177.0, 2.176.0, 2.175.0, 2.174.0, 2.173.0, 2.172.0, 2.171.0, 2.170.0, 2.169.0, 2.168.0, 2.167.0, 2.166.0, 2.165.0, 2.164.0, 2.163.0, 2.162.0, 2.161.0, 2.160.0, 2.159.0, 2.158.0, 2.157.0, 2.156.0, 2.155.0, 2.154.0, 2.153.0, 2.152.0, 2.151.0, 2.150.0, 2.149.0, 2.148.0, 2.147.0, 2.146.0, 2.145.0, 2.144.0, 2.143.0, 2.142.0, 2.141.0, 2.140.0, 2.139.0, 2.138.0, 2.137.0, 2.136.0, 2.135.0, 2.134.0, 2.133.0, 2.132.0, 2.131.0, 2.130.0, 2.129.0, 2.128.0, 2.127.0, 2.126.0, 2.125.0, 2.124.0, 2.123.0, 2.122.0, 2.121.0, 2.120.0, 2.119.0, 2.118.0, 2.117.0, 2.116.0, 2.115.0, 2.114.0, 2.113.0, 2.112.0, 2.111.0, 2.110.0, 2.109.0, 2.108.0, 2.107.0, 2.106.0, 2.105.0, 2.104.0, 2.103.0, 2.102.0, 2.101.0, 2.100.0, 2.99.0, 2.98.0, 2.97.0, 2.96.0, 2.95.0, 2.94.0, 2.93.0, 2.92.0, 2.91.0, 2.90.0, 2.89.0, 2.88.0, 2.87.0, 2.86.0, 2.85.0, 2.84.0, 2.83.0, 2.82.0, 2.81.0, 2.80.0, 2.79.0, 2.78.0, 2.77.0, 2.76.0, 2.75.0, 2.74.0, 2.73.0, 2.72.0, 2.71.0, 2.70.0, 2.69.0, 2.68.0, 2.67.0, 2.66.0, 2.65.0, 2.64.0, 2.63.0, 2.62.0, 2.61.0, 2.60.0, 2.59.0, 2.58.0, 2.57.0, 2.56.0, 2.55.0, 2.54.0, 2.53.0, 2.52.0, 2.51.0, 2.50.0, 2.49.0, 2.48.0, 2.47.0, 2.46.0, 2.45.0, 2.44.0, 2.43.0, 2.42.0, 2.41.0, 2.40.0, 2.39.0, 2.38.0, 2.37.0, 2.36.0, 2.35.0, 2.34.0, 2.33.0, 2.32.0, 2.31.0, 2.30.0, 2.29.0, 2.28.0, 2.27.0, 2.26.0, 2.25.0, 2.24.0, 2.23.0, 2.22.0, 2.21.0, 2.20.0, 2.19.0, 2.18.0, 2.17.0, 2.16.0, 2.15.0, 2.14.0, 2.13.0, 2.12.0, 2.11.0, 2.10.0, 2.9.0, 2.8.0, 2.7.28, 2.7.27, 2.7.26, 2.7.25, 2.7.24, 2.7.23, 2.7.22, 2.7.21, 2.7.20, 2.7.19, 2.7.18, 2.7.17, 2.7.16, 2.7.15, 2.7.14, 2.7.13, 2.7.12, 2.7.11, 2.7.10, 2.7.9, 2.7.8, 2.7.7, 2.7.6, 2.7.5, 2.7.4, 2.7.3, 2.7.2, 2.7.1, 2.7.0, 2.6.15, 2.6.14, 2.6.13, 2.6.12, 2.6.11, 2.6.10, 2.6.9, 2.6.8, 2.6.7, 2.6.6, 2.6.5, 2.6.4, 2.6.3, 2.6.2, 2.6.1, 2.6.0, 2.5.6, 2.5.5, 2.5.4, 2.5.3, 2.5.2, 2.5.1, 2.5.0, 2.4.14, 2.4.13, 2.4.12, 2.4.11, 2.4.10, 2.4.9, 2.4.8, 2.4.7, 2.4.6, 2.4.5, 2.4.4, 2.4.3, 2.4.2, 2.4.1, 2.4.0, 2.3.19, 2.3.18, 2.3.17, 2.3.16, 2.3.15, 2.3.14, 2.3.13, 2.3.12, 2.3.11, 2.3.10, 2.3.9, 2.3.8, 2.3.7, 2.3.6, 2.3.5, 2.3.4, 2.3.3, 2.3.2, 2.3.1, 2.3.0, 2.2.48, 2.2.47, 2.2.46, 2.2.45, 2.2.44, 2.2.43, 2.2.42, 2.2.41, 2.2.40, 2.2.39, 2.2.38, 2.2.37, 2.2.36, 2.2.35, 2.2.34, 2.2.33, 2.2.32, 2.2.31, 2.2.30, 2.2.29, 2.2.28, 2.2.27, 2.2.26, 2.2.25, 2.2.24, 2.2.23, 2.2.22, 2.2.21, 2.2.20, 2.2.19, 2.2.18, 2.2.17, 2.2.16, 2.2.15, 2.2.14, 2.2.13, 2.2.12, 2.2.11, 2.2.10, 2.2.9, 2.2.8, 2.2.7, 2.2.6, 2.2.5, 2.2.4, 2.2.3, 2.2.2, 2.2.1, 2.2.0, 2.1.50, 2.1.49, 2.1.48, 2.1.47, 2.1.46, 2.1.45, 2.1.44, 2.1.43, 2.1.42, 2.1.41, 2.1.40, 2.1.39, 2.1.38, 2.1.37, 2.1.36, 2.1.35, 2.1.34, 2.1.33, 2.1.32, 2.1.31, 2.1.30, 2.1.29, 2.1.28, 2.1.27, 2.1.26, 2.1.25, 2.1.24, 2.1.23, 2.1.22, 2.1.21, 2.1.20, 2.1.19, 2.1.18, 2.1.17, 2.1.16, 2.1.15, 2.1.14, 2.1.13, 2.1.12, 2.1.11, 2.1.10, 2.1.9, 2.1.8, 2.1.7, 2.1.6, 2.1.5, 2.1.4, 2.1.3, 2.1.2, 2.1.1, 2.1.0, 2.0.31, 2.0.30, 2.0.29, 2.0.28, 2.0.27, 2.0.26, 2.0.25, 2.0.24, 2.0.23, 2.0.22, 2.0.21, 2.0.19, 2.0.18, 2.0.17, 2.0.16, 2.0.15, 2.0.14, 2.0.13, 2.0.12, 2.0.11, 2.0.10, 2.0.9, 2.0.8, 2.0.7, 2.0.6, 2.0.5, 2.0.4, 2.0.3, 2.0.2, 2.0.1, 2.0.0-rc9, 2.0.0-rc8, 2.0.0-rc7, 2.0.0-rc6, 2.0.0-rc5, 2.0.0-rc4, 2.0.0-rc3, 2.0.0-rc2, 2.0.0-rc13, 2.0.0-rc12, 2.0.0-rc11, 2.0.0-rc10, 2.0.0-rc1, 2.0.0-rc.20, 2.0.0-rc.19, 2.0.0-rc.18, 2.0.0-rc.17, 2.0.0-rc.16, 2.0.0-rc.15, 2.0.0-rc.14, 1.18.0, 1.17.3, 1.17.2, 1.17.1, 1.17.0, 1.16.0, 1.15.0, 1.14.0, 1.13.0, 1.12.0, 1.10.0, 1.9.0, 1.8.1, 1.8.0, 1.7.1, 1.7.0, 1.6.0, 1.5.2, 1.5.1, 1.5.0, 1.4.1, 1.4.0, 1.3.2, 1.3.1, 1.3.0, 1.2.0, 1.1.0, 1.0.0, 0.9.9-pre.10, 0.9.8-pre.9, 0.9.7-pre.8, 0.9.6-pre.7, 0.9.5-pre.6, 0.9.4-pre.5, 0.9.3-pre.4, 0.9.2-pre.3, 0.9.1-pre.2, 0.9.0-pre.1 581 | 245 silly fetchPackageMetaData 582 | 245 silly fetchPackageMetaData at pickVersionFromRegistryDocument (/usr/local/lib/node_modules/npm/lib/fetch-package-metadata.js:178:16) 583 | 245 silly fetchPackageMetaData at /usr/local/lib/node_modules/npm/node_modules/iferr/index.js:13:50 584 | 245 silly fetchPackageMetaData at /usr/local/lib/node_modules/npm/lib/utils/pulse-till-done.js:20:8 585 | 245 silly fetchPackageMetaData at saved (/usr/local/lib/node_modules/npm/lib/cache/caching-client.js:174:7) 586 | 245 silly fetchPackageMetaData at /usr/local/lib/node_modules/npm/node_modules/graceful-fs/polyfills.js:241:18 587 | 245 silly fetchPackageMetaData at FSReqWrap.oncomplete (fs.js:123:15) code: 'ETARGET' } 588 | 246 silly rollbackFailedOptional Starting 589 | 247 silly rollbackFailedOptional Finishing 590 | 248 silly runTopLevelLifecycles Finishing 591 | 249 silly install printInstalled 592 | 250 verbose stack Error: No compatible version found: aws-sdk@0.9.x 593 | 250 verbose stack Valid install targets: 594 | 250 verbose stack 2.182.0, 2.181.0, 2.180.0, 2.179.0, 2.178.0, 2.177.0, 2.176.0, 2.175.0, 2.174.0, 2.173.0, 2.172.0, 2.171.0, 2.170.0, 2.169.0, 2.168.0, 2.167.0, 2.166.0, 2.165.0, 2.164.0, 2.163.0, 2.162.0, 2.161.0, 2.160.0, 2.159.0, 2.158.0, 2.157.0, 2.156.0, 2.155.0, 2.154.0, 2.153.0, 2.152.0, 2.151.0, 2.150.0, 2.149.0, 2.148.0, 2.147.0, 2.146.0, 2.145.0, 2.144.0, 2.143.0, 2.142.0, 2.141.0, 2.140.0, 2.139.0, 2.138.0, 2.137.0, 2.136.0, 2.135.0, 2.134.0, 2.133.0, 2.132.0, 2.131.0, 2.130.0, 2.129.0, 2.128.0, 2.127.0, 2.126.0, 2.125.0, 2.124.0, 2.123.0, 2.122.0, 2.121.0, 2.120.0, 2.119.0, 2.118.0, 2.117.0, 2.116.0, 2.115.0, 2.114.0, 2.113.0, 2.112.0, 2.111.0, 2.110.0, 2.109.0, 2.108.0, 2.107.0, 2.106.0, 2.105.0, 2.104.0, 2.103.0, 2.102.0, 2.101.0, 2.100.0, 2.99.0, 2.98.0, 2.97.0, 2.96.0, 2.95.0, 2.94.0, 2.93.0, 2.92.0, 2.91.0, 2.90.0, 2.89.0, 2.88.0, 2.87.0, 2.86.0, 2.85.0, 2.84.0, 2.83.0, 2.82.0, 2.81.0, 2.80.0, 2.79.0, 2.78.0, 2.77.0, 2.76.0, 2.75.0, 2.74.0, 2.73.0, 2.72.0, 2.71.0, 2.70.0, 2.69.0, 2.68.0, 2.67.0, 2.66.0, 2.65.0, 2.64.0, 2.63.0, 2.62.0, 2.61.0, 2.60.0, 2.59.0, 2.58.0, 2.57.0, 2.56.0, 2.55.0, 2.54.0, 2.53.0, 2.52.0, 2.51.0, 2.50.0, 2.49.0, 2.48.0, 2.47.0, 2.46.0, 2.45.0, 2.44.0, 2.43.0, 2.42.0, 2.41.0, 2.40.0, 2.39.0, 2.38.0, 2.37.0, 2.36.0, 2.35.0, 2.34.0, 2.33.0, 2.32.0, 2.31.0, 2.30.0, 2.29.0, 2.28.0, 2.27.0, 2.26.0, 2.25.0, 2.24.0, 2.23.0, 2.22.0, 2.21.0, 2.20.0, 2.19.0, 2.18.0, 2.17.0, 2.16.0, 2.15.0, 2.14.0, 2.13.0, 2.12.0, 2.11.0, 2.10.0, 2.9.0, 2.8.0, 2.7.28, 2.7.27, 2.7.26, 2.7.25, 2.7.24, 2.7.23, 2.7.22, 2.7.21, 2.7.20, 2.7.19, 2.7.18, 2.7.17, 2.7.16, 2.7.15, 2.7.14, 2.7.13, 2.7.12, 2.7.11, 2.7.10, 2.7.9, 2.7.8, 2.7.7, 2.7.6, 2.7.5, 2.7.4, 2.7.3, 2.7.2, 2.7.1, 2.7.0, 2.6.15, 2.6.14, 2.6.13, 2.6.12, 2.6.11, 2.6.10, 2.6.9, 2.6.8, 2.6.7, 2.6.6, 2.6.5, 2.6.4, 2.6.3, 2.6.2, 2.6.1, 2.6.0, 2.5.6, 2.5.5, 2.5.4, 2.5.3, 2.5.2, 2.5.1, 2.5.0, 2.4.14, 2.4.13, 2.4.12, 2.4.11, 2.4.10, 2.4.9, 2.4.8, 2.4.7, 2.4.6, 2.4.5, 2.4.4, 2.4.3, 2.4.2, 2.4.1, 2.4.0, 2.3.19, 2.3.18, 2.3.17, 2.3.16, 2.3.15, 2.3.14, 2.3.13, 2.3.12, 2.3.11, 2.3.10, 2.3.9, 2.3.8, 2.3.7, 2.3.6, 2.3.5, 2.3.4, 2.3.3, 2.3.2, 2.3.1, 2.3.0, 2.2.48, 2.2.47, 2.2.46, 2.2.45, 2.2.44, 2.2.43, 2.2.42, 2.2.41, 2.2.40, 2.2.39, 2.2.38, 2.2.37, 2.2.36, 2.2.35, 2.2.34, 2.2.33, 2.2.32, 2.2.31, 2.2.30, 2.2.29, 2.2.28, 2.2.27, 2.2.26, 2.2.25, 2.2.24, 2.2.23, 2.2.22, 2.2.21, 2.2.20, 2.2.19, 2.2.18, 2.2.17, 2.2.16, 2.2.15, 2.2.14, 2.2.13, 2.2.12, 2.2.11, 2.2.10, 2.2.9, 2.2.8, 2.2.7, 2.2.6, 2.2.5, 2.2.4, 2.2.3, 2.2.2, 2.2.1, 2.2.0, 2.1.50, 2.1.49, 2.1.48, 2.1.47, 2.1.46, 2.1.45, 2.1.44, 2.1.43, 2.1.42, 2.1.41, 2.1.40, 2.1.39, 2.1.38, 2.1.37, 2.1.36, 2.1.35, 2.1.34, 2.1.33, 2.1.32, 2.1.31, 2.1.30, 2.1.29, 2.1.28, 2.1.27, 2.1.26, 2.1.25, 2.1.24, 2.1.23, 2.1.22, 2.1.21, 2.1.20, 2.1.19, 2.1.18, 2.1.17, 2.1.16, 2.1.15, 2.1.14, 2.1.13, 2.1.12, 2.1.11, 2.1.10, 2.1.9, 2.1.8, 2.1.7, 2.1.6, 2.1.5, 2.1.4, 2.1.3, 2.1.2, 2.1.1, 2.1.0, 2.0.31, 2.0.30, 2.0.29, 2.0.28, 2.0.27, 2.0.26, 2.0.25, 2.0.24, 2.0.23, 2.0.22, 2.0.21, 2.0.19, 2.0.18, 2.0.17, 2.0.16, 2.0.15, 2.0.14, 2.0.13, 2.0.12, 2.0.11, 2.0.10, 2.0.9, 2.0.8, 2.0.7, 2.0.6, 2.0.5, 2.0.4, 2.0.3, 2.0.2, 2.0.1, 2.0.0-rc9, 2.0.0-rc8, 2.0.0-rc7, 2.0.0-rc6, 2.0.0-rc5, 2.0.0-rc4, 2.0.0-rc3, 2.0.0-rc2, 2.0.0-rc13, 2.0.0-rc12, 2.0.0-rc11, 2.0.0-rc10, 2.0.0-rc1, 2.0.0-rc.20, 2.0.0-rc.19, 2.0.0-rc.18, 2.0.0-rc.17, 2.0.0-rc.16, 2.0.0-rc.15, 2.0.0-rc.14, 1.18.0, 1.17.3, 1.17.2, 1.17.1, 1.17.0, 1.16.0, 1.15.0, 1.14.0, 1.13.0, 1.12.0, 1.10.0, 1.9.0, 1.8.1, 1.8.0, 1.7.1, 1.7.0, 1.6.0, 1.5.2, 1.5.1, 1.5.0, 1.4.1, 1.4.0, 1.3.2, 1.3.1, 1.3.0, 1.2.0, 1.1.0, 1.0.0, 0.9.9-pre.10, 0.9.8-pre.9, 0.9.7-pre.8, 0.9.6-pre.7, 0.9.5-pre.6, 0.9.4-pre.5, 0.9.3-pre.4, 0.9.2-pre.3, 0.9.1-pre.2, 0.9.0-pre.1 595 | 250 verbose stack 596 | 250 verbose stack at pickVersionFromRegistryDocument (/usr/local/lib/node_modules/npm/lib/fetch-package-metadata.js:178:16) 597 | 250 verbose stack at /usr/local/lib/node_modules/npm/node_modules/iferr/index.js:13:50 598 | 250 verbose stack at /usr/local/lib/node_modules/npm/lib/utils/pulse-till-done.js:20:8 599 | 250 verbose stack at saved (/usr/local/lib/node_modules/npm/lib/cache/caching-client.js:174:7) 600 | 250 verbose stack at /usr/local/lib/node_modules/npm/node_modules/graceful-fs/polyfills.js:241:18 601 | 250 verbose stack at FSReqWrap.oncomplete (fs.js:123:15) 602 | 251 verbose cwd /Users/zwh/work/git/vue-calendar 603 | 252 error Darwin 16.6.0 604 | 253 error argv "/usr/local/bin/node" "/usr/local/bin/npm" "install" "-g" "parcel" 605 | 254 error node v6.12.0 606 | 255 error npm v3.10.10 607 | 256 error code ETARGET 608 | 257 error notarget No compatible version found: aws-sdk@0.9.x 609 | 257 error notarget Valid install targets: 610 | 257 error notarget 2.182.0, 2.181.0, 2.180.0, 2.179.0, 2.178.0, 2.177.0, 2.176.0, 2.175.0, 2.174.0, 2.173.0, 2.172.0, 2.171.0, 2.170.0, 2.169.0, 2.168.0, 2.167.0, 2.166.0, 2.165.0, 2.164.0, 2.163.0, 2.162.0, 2.161.0, 2.160.0, 2.159.0, 2.158.0, 2.157.0, 2.156.0, 2.155.0, 2.154.0, 2.153.0, 2.152.0, 2.151.0, 2.150.0, 2.149.0, 2.148.0, 2.147.0, 2.146.0, 2.145.0, 2.144.0, 2.143.0, 2.142.0, 2.141.0, 2.140.0, 2.139.0, 2.138.0, 2.137.0, 2.136.0, 2.135.0, 2.134.0, 2.133.0, 2.132.0, 2.131.0, 2.130.0, 2.129.0, 2.128.0, 2.127.0, 2.126.0, 2.125.0, 2.124.0, 2.123.0, 2.122.0, 2.121.0, 2.120.0, 2.119.0, 2.118.0, 2.117.0, 2.116.0, 2.115.0, 2.114.0, 2.113.0, 2.112.0, 2.111.0, 2.110.0, 2.109.0, 2.108.0, 2.107.0, 2.106.0, 2.105.0, 2.104.0, 2.103.0, 2.102.0, 2.101.0, 2.100.0, 2.99.0, 2.98.0, 2.97.0, 2.96.0, 2.95.0, 2.94.0, 2.93.0, 2.92.0, 2.91.0, 2.90.0, 2.89.0, 2.88.0, 2.87.0, 2.86.0, 2.85.0, 2.84.0, 2.83.0, 2.82.0, 2.81.0, 2.80.0, 2.79.0, 2.78.0, 2.77.0, 2.76.0, 2.75.0, 2.74.0, 2.73.0, 2.72.0, 2.71.0, 2.70.0, 2.69.0, 2.68.0, 2.67.0, 2.66.0, 2.65.0, 2.64.0, 2.63.0, 2.62.0, 2.61.0, 2.60.0, 2.59.0, 2.58.0, 2.57.0, 2.56.0, 2.55.0, 2.54.0, 2.53.0, 2.52.0, 2.51.0, 2.50.0, 2.49.0, 2.48.0, 2.47.0, 2.46.0, 2.45.0, 2.44.0, 2.43.0, 2.42.0, 2.41.0, 2.40.0, 2.39.0, 2.38.0, 2.37.0, 2.36.0, 2.35.0, 2.34.0, 2.33.0, 2.32.0, 2.31.0, 2.30.0, 2.29.0, 2.28.0, 2.27.0, 2.26.0, 2.25.0, 2.24.0, 2.23.0, 2.22.0, 2.21.0, 2.20.0, 2.19.0, 2.18.0, 2.17.0, 2.16.0, 2.15.0, 2.14.0, 2.13.0, 2.12.0, 2.11.0, 2.10.0, 2.9.0, 2.8.0, 2.7.28, 2.7.27, 2.7.26, 2.7.25, 2.7.24, 2.7.23, 2.7.22, 2.7.21, 2.7.20, 2.7.19, 2.7.18, 2.7.17, 2.7.16, 2.7.15, 2.7.14, 2.7.13, 2.7.12, 2.7.11, 2.7.10, 2.7.9, 2.7.8, 2.7.7, 2.7.6, 2.7.5, 2.7.4, 2.7.3, 2.7.2, 2.7.1, 2.7.0, 2.6.15, 2.6.14, 2.6.13, 2.6.12, 2.6.11, 2.6.10, 2.6.9, 2.6.8, 2.6.7, 2.6.6, 2.6.5, 2.6.4, 2.6.3, 2.6.2, 2.6.1, 2.6.0, 2.5.6, 2.5.5, 2.5.4, 2.5.3, 2.5.2, 2.5.1, 2.5.0, 2.4.14, 2.4.13, 2.4.12, 2.4.11, 2.4.10, 2.4.9, 2.4.8, 2.4.7, 2.4.6, 2.4.5, 2.4.4, 2.4.3, 2.4.2, 2.4.1, 2.4.0, 2.3.19, 2.3.18, 2.3.17, 2.3.16, 2.3.15, 2.3.14, 2.3.13, 2.3.12, 2.3.11, 2.3.10, 2.3.9, 2.3.8, 2.3.7, 2.3.6, 2.3.5, 2.3.4, 2.3.3, 2.3.2, 2.3.1, 2.3.0, 2.2.48, 2.2.47, 2.2.46, 2.2.45, 2.2.44, 2.2.43, 2.2.42, 2.2.41, 2.2.40, 2.2.39, 2.2.38, 2.2.37, 2.2.36, 2.2.35, 2.2.34, 2.2.33, 2.2.32, 2.2.31, 2.2.30, 2.2.29, 2.2.28, 2.2.27, 2.2.26, 2.2.25, 2.2.24, 2.2.23, 2.2.22, 2.2.21, 2.2.20, 2.2.19, 2.2.18, 2.2.17, 2.2.16, 2.2.15, 2.2.14, 2.2.13, 2.2.12, 2.2.11, 2.2.10, 2.2.9, 2.2.8, 2.2.7, 2.2.6, 2.2.5, 2.2.4, 2.2.3, 2.2.2, 2.2.1, 2.2.0, 2.1.50, 2.1.49, 2.1.48, 2.1.47, 2.1.46, 2.1.45, 2.1.44, 2.1.43, 2.1.42, 2.1.41, 2.1.40, 2.1.39, 2.1.38, 2.1.37, 2.1.36, 2.1.35, 2.1.34, 2.1.33, 2.1.32, 2.1.31, 2.1.30, 2.1.29, 2.1.28, 2.1.27, 2.1.26, 2.1.25, 2.1.24, 2.1.23, 2.1.22, 2.1.21, 2.1.20, 2.1.19, 2.1.18, 2.1.17, 2.1.16, 2.1.15, 2.1.14, 2.1.13, 2.1.12, 2.1.11, 2.1.10, 2.1.9, 2.1.8, 2.1.7, 2.1.6, 2.1.5, 2.1.4, 2.1.3, 2.1.2, 2.1.1, 2.1.0, 2.0.31, 2.0.30, 2.0.29, 2.0.28, 2.0.27, 2.0.26, 2.0.25, 2.0.24, 2.0.23, 2.0.22, 2.0.21, 2.0.19, 2.0.18, 2.0.17, 2.0.16, 2.0.15, 2.0.14, 2.0.13, 2.0.12, 2.0.11, 2.0.10, 2.0.9, 2.0.8, 2.0.7, 2.0.6, 2.0.5, 2.0.4, 2.0.3, 2.0.2, 2.0.1, 2.0.0-rc9, 2.0.0-rc8, 2.0.0-rc7, 2.0.0-rc6, 2.0.0-rc5, 2.0.0-rc4, 2.0.0-rc3, 2.0.0-rc2, 2.0.0-rc13, 2.0.0-rc12, 2.0.0-rc11, 2.0.0-rc10, 2.0.0-rc1, 2.0.0-rc.20, 2.0.0-rc.19, 2.0.0-rc.18, 2.0.0-rc.17, 2.0.0-rc.16, 2.0.0-rc.15, 2.0.0-rc.14, 1.18.0, 1.17.3, 1.17.2, 1.17.1, 1.17.0, 1.16.0, 1.15.0, 1.14.0, 1.13.0, 1.12.0, 1.10.0, 1.9.0, 1.8.1, 1.8.0, 1.7.1, 1.7.0, 1.6.0, 1.5.2, 1.5.1, 1.5.0, 1.4.1, 1.4.0, 1.3.2, 1.3.1, 1.3.0, 1.2.0, 1.1.0, 1.0.0, 0.9.9-pre.10, 0.9.8-pre.9, 0.9.7-pre.8, 0.9.6-pre.7, 0.9.5-pre.6, 0.9.4-pre.5, 0.9.3-pre.4, 0.9.2-pre.3, 0.9.1-pre.2, 0.9.0-pre.1 611 | 258 error notarget This is most likely not a problem with npm itself. 612 | 258 error notarget In most cases you or one of your dependencies are requesting 613 | 258 error notarget a package version that doesn't exist. 614 | 258 error notarget 615 | 258 error notarget It was specified as a dependency of 'parcel' 616 | 259 verbose exit [ 1, true ] 617 | --------------------------------------------------------------------------------