在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
开源软件名称:wilmoore/frontend-packagers开源软件地址:https://github.com/wilmoore/frontend-packagers开源编程语言:开源软件介绍:Front-End Package Manager ComparisonWhy do this?It is about time for front-end developers to have a decent package manager. Front-end development is serious business and there is no good reason for us to continue with sub-par tools or no tools at all. I appreciate the effort that has gone into all of these. It is awesome to see really talented developers taking on the task and sharing the result with the rest of us. Who are you?
The contendersThe following tools have caught my attention: NOTES:
What is a package manager?A package manager is a tool that allows you to specify a list of dependencies for your library or application. The tools depicted here are similar in scope to Bundler, NPM, or Composer. How is this thing evaluated?Since tool choice is extremely subjective, you (and/or your team) should come up with your own weighting system and score each tool accordingly. Configuration FileThe following table provides the name of the "manifest" file where you specify dependencies and/or the details of your package.
Sample bower enabled {
"name": "my-project",
"version": "1.0.0",
"main": "path/to/main.css",
"ignore": [
".jshintrc",
"**/*.txt"
],
"dependencies": {
"<name>": "<version>",
"<name>": "<folder>",
"<name>": "<package>"
},
"devDependencies": {
"<test-framework-name>": "<version>"
}
} Sample component enabled {
"name": "tip",
"repo": "component/tip",
"description": "Tip component",
"version": "0.0.1",
"keywords": ["tooltip", "tip", "ui"],
"dependencies": {
"component/emitter": "*",
"component/jquery": "*"
},
"scripts": ["index.js", "template.js"],
"styles": ["tip.css"]
} Sample jam enabled {
"name": "csbp",
"version": "0.0.1",
"description": "A Non-Framework Client-Side JavaScript/HTML5 Project Boilerplate",
"dependencies": {
"jamjs": "*",
"grunt-contrib": "*"
},
"devDependencies": {
"chai": "*",
"mocha": "*",
"sinon": "*",
"grunt-mocha": "*"
},
"jam": {
"packageDir": "src/libs/js",
"baseUrl": "src/main/js"
}
} Sample volo enabled {
"name": "csbp",
"version": "0.0.1",
"description": "A Non-Framework Client-Side JavaScript/HTML5 Project Boilerplate",
"dependencies": {
},
"devDependencies": {
"yeti": "*",
"docco": "*",
"jshint": "*",
"chai": "*",
"mocha": "*",
"sinon": "*"
},
"amd": {},
"volo": {
"baseUrl": "src/js/lib",
"dependencies": {
"page": "github:visionmedia/page.js",
"requirejs": "*"
}
}
} Sample npm + browserify enabled {
"name": "{{project}}",
"version": "1.0.0",
"description": "{{description}}",
"repository": "git://github.com/{{author}}/{{project}}.git",
"main": "index.js",
"dependencies": {
"hyperquest": "~0.1.0"
},
"devDependencies": {
"mocha": "*"
},
"licenses": "MIT"
} Sample spm enabled {
"name": "{{project}}",
"version": "1.0.0",
"description": "{{description}}",
"repository": "git://github.com/{{author}}/{{project}}.git",
"spm": {
"main": "index.js",
"dependencies": {
"moment": "2.8.1",
"jquery": "1.11.1"
}
},
"licenses": "MIT"
} NOTES:
Package Installation LocationThe following table details where each tool stores downloaded packages.
NOTES: volo has a fairly complex algorithm. If not defined in
Development DependenciesThe following table details whether each tool allows specifying development dependencies.
NOTES:
ResponsibilitiesThe following table details the responsibilities the given tool takes on.
NOTES:
Build/CompileThe following table details which tools require a build/compile step during development.
NOTES:
Central RegistryThe following table details which tools expose a central "registry".
NOTES:
Package installation sourcesThe following table details the method by which each tool allows you to specify each dependency (i.e.
NOTES:
SpeedThe following table details the speed of each tool.
NOTES:
Supported JavaScript Module formatsThe following table details the JavaScript format each tool expects/handles.
NOTES: There are several JavaScript formatting methodologies:
NOTES:
Module / Script LoaderThe following table details the module/script loader supported by each tool.
NOTES: Loaders that you might be interested in: Package ContentsThe following table details the the types of source files that can be contained in each package per tool.
NOTES:
Final thoughtsEach package manager is built by talented, responsive, and friendly developers. Ultimately, to evaluate for your team, you will have to put a weight on each category and score per your needs. Library and component authors may want to consider:
Complementary ResourcesBelow is a list of resources that will likely be useful to you if you found this comparison useful:
ContributingI am sure I've made a few grammatical and spelling errors. I've probably even made comparison errors in a few spots. Please feel free to speak up or submit a pull request. Symbols Used✓ |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论