什么是NPM,为什么要用NPM来管理包
会产生冗余问题
前端与后端使用同一套包管理软件可以减少公共部分的耦合,但是会导致不必要的冗余。
比如一个bootstrap包,是不可能被后端使用的。但是如果统一使用npm管理,每次npm install都会安装bootstrap包,而后端一辈子都用不倒,完全是浪费带宽、存储空间、时间。并且你在运行后端前,每次都安装个bootstrap,你不觉得恶心吗?
运行环境完全不同
前端与后端的运行环境是完全不同的,前端运行于浏览器内(即主要是DOM与BOM环境,相对受限),后端则运行于OS内(有无限的API与可能性)。所以这两种开发环境是完全不同的。不同的开发环境使用同一个包管理文件显然是不合时宜的,也不符合模块化的理念。
开发人员也可能不同
前端与后端通常是不同的开发团队,因些前端关注的是HTML,CSS,DOM,BOM, js的UI库与动作库。而后端关注的是性能,安全,效率,数据,缓存,用户管理。他们可能都会用到gulp/grunt,而后端通常不会用到webpack,wiredep,bootstrap, jQuery这类纯前端的包。所以强行将他们捆绑在一起是没有必要的。
同构包可以分开打包
由于isomorphic js的流行,同构包也会越来越多。但是其实你会发现,不管如何同构,前后端的运行环境还是不同的。所以同构包的调用环境还是不一样的。前端的包通常需要通过browserify,webpack或者gulp等工具发布成前端可用的包。跟npm包直接通过package.json决定从什么地方接入是不同的。即使npm可以为前端包提供字段供前端接入,也会显得非常混乱。
js熟悉的技术栈有哪些
以下是一些熟悉的JavaScript技术栈:
1. 前端开发:
- HTML/CSS:用于开发网页布局和样式。
- React.js:一种流行的JavaScript库,用于构建用户界面。
- AngularJS/Vue.js:另外两个常用的JavaScript框架,用于构建可复用组件和实现数据绑定。
2. 后端开发:
- Node.js:用于在服务器端运行JavaScript代码。
- Express.js:一种常用的Node.js框架,用于搭建Web应用程序和API。
- MongoDB/MySQL:熟悉使用NoSQL或SQL数据库进行数据存储和查询。
3. 构建工具和包管理器:
- npm:JavaScript的包管理器,用于安装、管理和共享代码包。
- Webpack:用于打包和构建JavaScript应用程序的模块打包工具。
- Babel:用于将新版本的JavaScript转换为旧版本的工具,以确保在不同浏览器中的兼容性。
4. 测试和调试:
- Jest/Mocha:用于编写和运行JavaScript测试的测试框架。
- Chrome DevTools:浏览器内置的调试工具,用于分析和调试JavaScript代码。
5. 前端工程化:
- TypeScript:一种类型的扩展JavaScript,提供更强的类型检查和IDE支持。
- ESLint/Prettier:用于静态代码检查和格式化的工具,以确保代码质量和一致性。
- Git/GitHub:版本控制工具和代码托管平台,用于团队协作和代码管理。
请注意,这只是一些常用的JavaScript技术栈示例,并不代表所有可能的技术栈。根据具体项目需求和个人偏好,可能会有其他技术栈的选择。
还没有评论,来说两句吧...