前端项目模块化的实践1:搭建 NPM 私有仓库管理源码及依赖

如下是关于前端项目模块化的实践,包含如下内容:javascript

  1. 搭建 NPM 私有仓库管理源码及依赖
  2. 使用 Webpack 打包基础设施代码
  3. 使用 TypeScript 编写可靠类库

本文是关于前端项目模板化的第1部分html

使用 Docker 搭建私有NPM仓库

关于 Docker 的使用不在本文之中,请自行参考其余文档。前端

通过测试, keyvanfatehi/sinopia 可用。java

  1. 将 docker image 拉下来
docker pull keyvanfatehi/sinopia
  1. keyvanfatehi/sinopia 跑起来
docker run --name sinopia -d -p 4873:4873 keyvanfatehi/sinopia

个人 docker 主机名是 ubuntu-17,此时经过 http://ubuntu-17/4873 能够访问私有NPM 仓库网页。node

发布 JavaScript 类库

添加示例类库项目 myGreetinggit

mkdir myGreeting
cd myGreeting
yarn init -y # npm init -y
touch index.js

在 index.js 内添加以下内容github

let greeting = function(name) {
    return 'Hello ' + name;
}

module.exports = greeting;

这份代码导出了一个函数,已经能够发布和被依赖了。docker

  1. npm adduser

初次使用这个私有仓库须要添加用户npm

npm adduser --registry http://ubuntu-17:4873
  1. npm publish

再把上面的代码发布上去ubuntu

npm publish . --registry http://ubuntu-17:4873

NPM 有本身的版本和发布策略,能够使用如下命令查看帮助文档

  • npm help version
  • npm help publish

发布可能由于版本问题失败,追加谓词 --force 可强制发布但并不是是常规操做。

发布后的管理页面图示

引用已发布的类库

添加示例业务项目 myDemo

mkdir myDemo
cd myDemo
yarn init -y # npm init -y
touch index.js

引用 myGreeting

yarn add myGreeting --dev --registry http://ubuntu-17:4873

在 index.js 内添加以下内容

const myGreeting = require('myGreeting');

(function() {
    let greeting = myGreeting('Rattz');
    console.log(greeting);
})();

运行起来

node index.js
Hello Rattz

至此私有NPM仓库搭建、类库发布、依赖引用的部分已经完成。

项目所使用源码已发布 github,jusfrw 原创

相关文章
相关标签/搜索