这篇教程实用于手动构建的 vue 我的项目和 vue-cli 2x 版本的脚手架主动构建的我的项目。
vue/cli 3x 版本以上的脚手架能够在主动构建时自选集成的 typescript 环境,这并不有利于学习。
新建 vue 我的项目我这里采纳 2x 的脚手架主动构建个 vue 我的项目。
vue init webpack platform-test依照如下截图顺次抉择即可:
构建完我的项目之后进入,查看我的项目的目录构造如下:
革新我的项目装置依赖项须要新增些依赖项。
ts 和 tslint 相干,这是必须要的:
ts-loadertypescripttslinttslint-config-standardtslint-loader以下两个是不便写 ts 的依赖项,可选
vue-class-component 扩大 vue 反对 typescript,将原有的 vue 语法通过申明的形式来反对 tsvue-property-decorator 基于 vue-class-component 扩大更多装璜器但因为存在很简单的各依赖项的版本抵触,还有依赖项是须要降级的。
例如,目前我的项目中的 vue 和 webpack 版本,与如上间接装置最新的 typescript、ts-loader 版本就存在抵触,不仅文件中存在红色波浪线的提醒,还有编译时的报错。
这时候就须要升高 typescript、ts-loader 的版本,但你又会发现本来 ts 的类型申明文件写法又会有问题,那还是降级 webpack 的版本比拟好......
总之版本问题挺麻烦的。
我这里测试整顿出一套无效的依赖项版本,间接复制到我的项目的 package.json 中
"dependencies": { "vue": "^2.5.2", "vue-class-component": "^7.2.6", "vue-property-decorator": "^9.1.2", "vue-router": "^3.0.1"},"devDependencies": { "autoprefixer": "^7.1.2", "babel-core": "^6.22.1", "babel-eslint": "^8.2.1", "babel-helper-vue-jsx-merge-props": "^2.0.3", "babel-loader": "^7.1.1", "babel-plugin-syntax-jsx": "^6.18.0", "babel-plugin-transform-runtime": "^6.22.0", "babel-plugin-transform-vue-jsx": "^3.5.0", "babel-preset-env": "^1.3.2", "babel-preset-stage-2": "^6.22.0", "chalk": "^2.0.1", "copy-webpack-plugin": "^4.0.1", "css-loader": "^0.28.0", "eslint": "^4.19.1", "eslint-config-standard": "^10.2.1", "eslint-friendly-formatter": "^3.0.0", "eslint-loader": "^2.0.0", "eslint-plugin-html": "^3.0.0", "eslint-plugin-import": "^2.7.0", "eslint-plugin-node": "^5.2.0", "eslint-plugin-promise": "^3.4.0", "eslint-plugin-standard": "^3.0.1", "eslint-plugin-typescript": "^0.11.0", "extract-text-webpack-plugin": "^3.0.0", "file-loader": "^1.1.4", "friendly-errors-webpack-plugin": "^1.6.1", "html-webpack-plugin": "^3.2.0", "node-notifier": "^5.1.2", "optimize-css-assets-webpack-plugin": "^3.2.0", "ora": "^1.2.0", "portfinder": "^1.0.13", "postcss-import": "^11.0.0", "postcss-loader": "^2.0.8", "postcss-url": "^7.2.1", "rimraf": "^2.6.0", "semver": "^5.3.0", "shelljs": "^0.7.6", "ts-loader": "^4.4.2", "tslint": "^6.1.3", "tslint-config-standard": "^9.0.0", "tslint-loader": "^3.5.4", "typescript": "^3.5.2", "uglifyjs-webpack-plugin": "^1.1.1", "url-loader": "^0.5.8", "vue-loader": "^15.3.0", "vue-style-loader": "^3.0.1", "vue-template-compiler": "^2.5.2", "webpack": "^4.5.0", "webpack-bundle-analyzer": "^2.9.0", "webpack-dev-server": "^3.5.1", "webpack-merge": "^4.1.0", "webpack-cli": "^3.3.2"},删除整个 node_modules,如果有 package-lock.json 这个文件也要删掉,而后重新安装所有依赖项,
...