# generator-addin 中文文档

规范地址：https://npmcn.com/package/generator-addin/

版本：4\.1\.2
npm 元数据更新时间：2026-11-03T17:21:24.513Z
中文译文更新时间：2026-11-03T18:03:48.211Z
软件包许可：Apache-2\.0

本文由上游 README 机器翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/generator-addin
原文对照：https://npmcn.com/package/generator-addin/?lang=original
项目主页：https://github.com/geotab/generator-addin
源码仓库：https://github.com/Geotab/generator-addin

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：279 kB，78 个文件
- 模块格式：ES Module
- TypeScript 类型：未声明
- 运行依赖：4 个
- 首次发布：2016-05-16T18:40:25.810Z
- 最新版本发布：2025-06-03T20:53:23.094Z
- 已发布版本数：34（近 12 个月 0 个）

## 中文简介

MyGeotab/Geotab Drive插件生成器

## 安装

```sh
npm install generator-addin
```

也可以使用：`pnpm add generator-addin`、`yarn add generator-addin`、`bun add generator-addin`

## README

# 发电机-加件 [![NPM version](https://badge.fury.io/js/generator-addin.svg)](https://npmjs.org/package/generator-addin) [![Build Status](https://travis-ci.org/Geotab/generator-addin.svg?branch=master)](https://travis-ci.org/Geotab/generator-addin)

> 约曼生成器MyGeotab/Geotab驱动插件

> \[!重要的) 加载项生成器当前适用于Yeoman版本 [5.0.0](https://github.com/yeoman/yo/releases/tag/v5.0.0)。

## 特性

### 软件包管理

利用 [NPM](https://www.npmjs.com/)

### 本地调试

-   在本地运行和调试外接程序，而不必添加到测试一下数据库。MyGeotabApi模拟传递给外接程序的API对象，以向您测试一下数据库发出请求。
-   模拟状态——Drive插件将尝试使用HTML5功能模拟Android/IOS设备功能（如地理定位）。
-   自动lint您的脚本
-   内置预览服务器与Webpack的开发服务器
-   Webpack利用了 [ES2015特性](https://babeljs.io/docs/learn-es2015/) 通过使用 [巴别塔](https://babeljs.io/) 装载机

### 发布构建过程

-   自动lint您的脚本
-   缩小、模糊处理和图像优化
-   沙盒CSS不影响父文档CSS
-   将url转换为部署位置

## 开始

### 安装

-   安装依赖关系: `npm install -g yo@5.0.0`
-   安装发电机: `npm install -g generator-addin`
-   为您的项目创建一个目录 `mkdir <projdir>`
-   更改为您的项目 `cd <projdir>`
-   运行 `yo addin` 来支撑您的插件

### 使用

-   运行 `npm install <package>` 安装前端依赖项
-   运行 `npm run dev` 或 `npm run serve` 预览和观察更改
-   运行 `npm run build` 构建用于生产的插件 (使用生产文件创建Zip文件以在MyG中进行测试)

## 文档

### MyGeotab

有关MyGeotab和Geotab Drive addins或MyGeotab API的信息，请参阅 [MyGeotab SDK](https://developers.geotab.com/myGeotab/introduction)

### Addin生成器

插件生成器使用Webpack运行，并大量使用Webpack的能力来构建 [依赖关系图](https://webpack.js.org/concepts/dependency-graph/)． 当构建运行时，Webpack获取依赖图并生成一个优化的JS、CSS和HTML文件。

有关Webpack的更全面信息，请访问 [Webpack文档](https://webpack.js.org/concepts/)

#### 依赖项

Webpack将单独的JavaScript文件视为 [模块](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Modules),这需要用于 `main.js` 首先导出。 [Webpack的模块支持](https://webpack.js.org/guides/getting-started/#modules) 将为您处理浏览器兼容性。

使用Webpack可以让我们利用npm和它的相关库。例如，跑步 `npm install jquery` 和放置 `import $ from 'jquery';` 在 `main.js` 会给你访问jQuery库在你的插件。

这个 [入口点](https://webpack.js.org/concepts/#entry) 对于发电机是 `.dev/index.js` 对于开发构建和 `app/index.js` 用于生产。中包含的任何文件 `.dev/index.js` 不会被捆绑到最终产品中。 **推荐的方法** 包括依赖项 `app/scripts/main.js`,因为这将允许文件包含在Webpack的生产和开发环境中。

#### 与老艾丁一起使用

许多旧的插件直接从main.js中运行，并且在主HTML页面中有几个对外部脚本的引用。要使旧的插件与webpack一起运行，您需要将对静态资产的任何引用从 `*.html` 文件到 `main.js`：

```javascript
// in app/scripts/main.js
require('../styles/main.css');
require('../styles/other.css');

// Importing a library downloaded with npm
import Vue from 'vue/dist/vue';

// Importing functions from another file
import { helper1, helper2, helper3 } from './helper.js';

```

任何正在导入的文件都需要转换为 [es2015模块](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Modules)。

#### 与翻译一起使用

要在加载时翻译插件， `state.translate(...)` 必须被叫进来 `initialize()` 并将插件的HTML根目录交给：

```javascript
    initialize: function (freshApi, freshState, initializeCallback) {
      // Loading translations if available
      if (freshState.translate) {
        freshState.translate(elAddin || '');
      }
      // MUST call initializeCallback when done any setup
      initializeCallback();
    }
```

您还可以通过使用直接传递句子来翻译句子 `state.translate(...)`． 这对于翻译动态创建的内容（IE）非常有用。JavaScript):

```javascript
    focus: function(api, state){
        document.querySelector('#app').textContent = state.translate('Translate this sentence');
    }
```

任何需要翻译的文本都需要添加到 `{language}.json` 文件，其中 `{language}` 是一个支持的缩写。

## 常见问题解答

**_我必须在我的html文件中引用构建吗？_** 否。Webpack会自动处理此问题

**_我需要什么版本的节点？_** 我们支持节点17。X及以上。推荐使用v22.12.0版本

**_我一直得到一个错误告诉我regeneratorRuntime没有定义。这是什么意思？_** Webpack编译时考虑了兼容性，并将尝试将异步函数转换为与旧版ie浏览器的兼容性。目前有一个Webpack的错误导致transpilation失败，除非 `regeneratorRuntime` 手动定义。运行 `npm i -D regenerator-runtime` 和地点 `const regeneratorRuntime = require('regenerator-runtime');` 在受影响的文件中

**_我一直在控制台中收到一条错误消息，告诉我找不到我的文件，但我可以在我的目录中看到它。为什么？_** 这可能意味着您在主HTML文件中引用了该文件。删除此引用，并将文件导入 `main.js`。

## 许可证

apache - 2.0© [Geotab Inc](https://geotab.com/)

## 常见问题

### generator-addin 是什么？

MyGeotab/Geotab Drive插件生成器

### 如何安装 generator-addin？

在项目目录运行 npm install generator-addin，或使用 pnpm add / yarn add / bun add。

### generator-addin 支持 TypeScript 吗？

该包的 package\.json 没有声明类型入口。需要类型提示时，可以在 npm 上查找社区维护的 @types/generator-addin 是否存在。

### generator-addin 支持 ESM 还是 CommonJS？

以 ES Module 形式发布，推荐使用 import 引入。在 CommonJS 项目中，Node\.js 20\.19\+ / 22\.12\+ 可以直接 require\(\) 不含顶层 await 的 ES Module，更早的版本需要改用动态 import\(\)。

### generator-addin 可以商用吗？

generator-addin 使用 Apache-2\.0 许可。宽松许可：允许商业使用、修改和再分发，并附带明确的专利授权；分发时需保留许可与 NOTICE 文件，修改过的文件要注明改动。以上为概括，不构成法律意见，请以许可原文为准。

### generator-addin 还在维护吗？

最新版本 4\.1\.2 发布于 2025/06/04（1\.4 年前）；至今共发布 34 个版本，其中过去 12 个月发布了 0 个；首次发布于 2016/05/17。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

