Home > Article > Web Front-end > How to use Angular to launch a component
This time I will show you how to use Angular to launch a component. What are the precautions for using Angular to launch a component? The following is a practical case, let's take a look.
Create module
Initialize package.json file
Execute naming
npm init -y
The package.json file will be automatically generated as follows, name The default is the folder name
{ "name": "MZC-Ng-Api", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "keywords": [], "author": "", "license": "ISC" }
On this basis, you can set the default generated value
npm config set init-author-name "yiershan" # 你的名称 npm config set init-author-email "511176294@qq.com" # 你的邮箱 npm config set init-author-url "https://www.jianshu.com/u/8afb7e623b70" # 你的个人网页 npm config set init-license "MIT" # 开源授权协议名 npm config set init-version "0.0.1" # 版本号
Delete and try again
{ "name": "MZC-Ng-Api", "version": "0.0.1", "description": "", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "keywords": [], "author": "yiershan <511176294@qq.com> (https://www.jianshu.com/u/8afb7e623b70)", "license": "MIT" }
Then add a README.md file
Briefly introduce the project
# MZC-Ng-Api 这是一个npm包发布测试项目 ## License 请查看 [MIT license](./LICENSE).
Add an open source agreement file
You still have to have a nose and an eye to do things.
MIT License Copyright (c) 2017 MZC 本项目为测试项目,完全免费。
Add source code
Create a src directory and add an Index.ts file
export class MzcNgApi{ private name: string; constructor() { this.name = "MzcNgApi"; } }
Create an Index.ts file
export * from './src/index'
Compile using typescript
If you don’t have typescript installed, install it first
npm i -g typescript
Initialize the tsconfig.json file
tsc --init
Automatically generate the file, very complete and powerful , and explanation
{ "compilerOptions": { /* Basic Options */ "target": "es5", /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017','ES2018' or 'ESNEXT'. */ "module": "commonjs", /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', or 'ESNext'. */ // "lib": [], /* Specify library files to be included in the compilation. */ // "allowJs": true, /* Allow javascript files to be compiled. */ // "checkJs": true, /* Report errors in .js files. */ // "jsx": "preserve", /* Specify JSX code generation: 'preserve', 'react-native', or 'react'. */ //"declaration": true, /* Generates corresponding '.d.ts' file. */ // "sourceMap": true, /* Generates corresponding '.map' file. */ // "outFile": "./", /* Concatenate and emit output to single file. */ // "outDir": "dist", /* Redirect output structure to the directory. */ // "rootDir": "./", /* Specify the root directory of input files. Use to control the output directory structure with --outDir. */ // "removeComments": true, /* Do not emit comments to output. */ // "noEmit": true, /* Do not emit outputs. */ // "importHelpers": true, /* Import emit helpers from 'tslib'. */ // "downlevelIteration": true, /* Provide full support for iterables in 'for-of', spread, and destructuring when targeting 'ES5' or 'ES3'. */ // "isolatedModules": true, /* Transpile each file as a separate module (similar to 'ts.transpileModule'). */ /* Strict Type-Checking Options */ "strict": true, /* Enable all strict type-checking options. */ // "noImplicitAny": true, /* Raise error on expressions and declarations with an implied 'any' type. */ // "strictNullChecks": true, /* Enable strict null checks. */ // "strictFunctionTypes": true, /* Enable strict checking of function types. */ // "strictPropertyInitialization": true, /* Enable strict checking of property initialization in classes. */ // "noImplicitThis": true, /* Raise error on 'this' expressions with an implied 'any' type. */ // "alwaysStrict": true, /* Parse in strict mode and emit "use strict" for each source file. */ /* Additional Checks */ // "noUnusedLocals": true, /* Report errors on unused locals. */ // "noUnusedParameters": true, /* Report errors on unused parameters. */ // "noImplicitReturns": true, /* Report error when not all code paths in function return a value. */ // "noFallthroughCasesInSwitch": true, /* Report errors for fallthrough cases in switch statement. */ /* Module Resolution Options */ // "moduleResolution": "node", /* Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6). */ // "baseUrl": "./", /* Base directory to resolve non-absolute module names. */ // "paths": {}, /* A series of entries which re-map imports to lookup locations relative to the 'baseUrl'. */ // "rootDirs": [], /* List of root folders whose combined content represents the structure of the project at runtime. */ // "typeRoots": [], /* List of folders to include type definitions from. */ // "types": [], /* Type declaration files to be included in compilation. */ // "allowSyntheticDefaultImports": true, /* Allow default imports from modules with no default export. This does not affect code emit, just typechecking. */ "esModuleInterop": true /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */ // "preserveSymlinks": true, /* Do not resolve the real path of symlinks. */ /* Source Map Options */ // "sourceRoot": "./", /* Specify the location where debugger should locate TypeScript files instead of source locations. */ // "mapRoot": "./", /* Specify the location where debugger should locate map files instead of generated locations. */ // "inlineSourceMap": true, /* Emit a single file with source maps instead of having a separate file. */ // "inlineSources": true, /* Emit the source alongside the sourcemaps within a single file; requires '--inlineSourceMap' or '--sourceMap' to be set. */ /* Experimental Options */ // "experimentalDecorators": true, /* Enables experimental support for ES7 decorators. */ // "emitDecoratorMetadata": true, /* Enables experimental support for emitting type metadata for decorators. */ } }
Compilation
tsc -p .
Successful compilation will generate a js file
Release
Although there is nothing, there is everything.
Modify package.json file
{ "name": "mzc-ng-api", // 这个名字要小写且不能重复,有大写字母会报错 "version": "1.0.2", "description": "个人博客系统,从后台api取数据的angular封装", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "repository": { "type": "git", "url": "git+https://github.com/yiershan/MZC-Ng-Api.git" }, "keywords": [], "author": "yiershan <511176294@qq.com> (https://www.jianshu.com/u/8afb7e623b70)", "license": "MIT", "bugs": { "url": "https://github.com/yiershan/MZC-Ng-Api/issues" }, "homepage": "https://github.com/yiershan/MZC-Ng-Api#readme" }
Correct download source
npm config set registry https://registry.npmjs.org/
Login
npm login
If not Just register an account
Publish
npm publish
It will take effect immediately after the publication is completed. You can check it by going to npm and download it
Use
Create a new project installation package
npm i mzc-ng-api
I found that many things have been published.
And there are no smart prompts during development work.
Perfect optimization
Generate header files when compiling, *.d.ts.
Solve the compiler prompt function
Set in tsconfig.json
"declaration": true,
You can study more about tsconfig.json configuration Research
Specify release file
Modify
{ "name": "mzc-ng-api", "version": "1.0.2", "description": "个人博客系统,从后台api取数据的angular封装", "main": "index.js", "types": "./index.d.ts", // 添加这个 "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "files": [ // 指定发布文件 "index.js", "index.d.ts", "src/*.js", "src/*.d.ts", "src/**/*.js", "src/**/*.d.ts", "README.md", "LICENSE", "package.json" ], "repository": { "type": "git", "url": "git+https://github.com/yiershan/MZC-Ng-Api.git" }, "keywords": [], "author": "yiershan <511176294@qq.com> (https://www.jianshu.com/u/8afb7e623b70)", "license": "MIT", "bugs": { "url": "https://github.com/yiershan/MZC-Ng-Api/issues" }, "homepage": "https://github.com/yiershan/MZC-Ng-Api#readme" }
Update version
npm version prepatch
More operations
# 版本号从 1.2.3 变成 1.2.4-0,就是 1.2.4 版本的第一个预发布版本。 npm version prepatch # 版本号从 1.2.4-0 变成 1.3.0-0,就是 1.3.0 版本的第一个预发布版本。 npm version preminor # 版本号从 1.2.3 变成 2.0.0-0,就是 2.0.0 版本的第一个预发布版本。 npm version premajor # 版本号从 2.0.0-0 变成 2.0.0-1,就是使预发布版本号加一。 npm version prerelease 更新 npm publish
Download It will be much better if you come down and take a look
Encapsulate some scripts.
You can write more quick scripts according to your own needs
"scripts": { "build": "tsc -p .", "b":"npm run build", "version": "npm version prerelease", "v":"mpm run v", "publish": "npm run b && npm publish", "p":"npm run publish" },
I believe you have mastered the method after reading the case in this article. For more exciting content, please pay attention to other related articles on the php Chinese website!
Recommended reading:
vue makes the mobile phone send SMS verification code registration function
The above is the detailed content of How to use Angular to launch a component. For more information, please follow other related articles on the PHP Chinese website!