QuickLib — это универсальная библиотека функций. Она поддерживает форматы h5, подходит для небольших программ и проектов с интерфейсом и сервером.
Размер quick.min.js после сжатия составляет менее 28 КБ.
Разработка:
yarn install
yarn dev
Сборка:
yarn build
Библиотека экспортируется в виде модулей CommonJS, ES и модулей, которые могут быть распознаны браузерами. Настройка осуществляется с помощью следующих параметров:
<script>
.Пример конфигурации:
{
input: 'src/main.js',
external: ['ms'],
output: [
{ file: pkg.main, format: 'cjs' },
{ file: pkg.module, format: 'es' },
{ file: pkg.module, format: 'umd' }
]
}
Тестирование веб-приложения:
# Тестирование веб-страницы
npm run web
# Сборка компонентов
npm run build
# Создание отдельного компонента для импорта в Vue
npm run esm
# Создание универсального модуля для браузера
npm run umd
Установка Rollup:
npm i rollup -g
// Затем создайте проект локально:
mkdir -p my-project
cd my-project
Файл конфигурации Rollup (rollup.config.js находится в корне проекта):
// rollup.config.js
export default {
input: 'src/main.js',
output: {
file: 'bundle.js',
format: 'cjs',
},
};
Вот некоторые полезные плагины:
Конфигурация:
import resolve from 'rollup-plugin-node-resolve';
import commonjs from 'rollup-plugin-commonjs';
import babel from 'rollup-plugin-babel';
import { terser } from 'rollup-plugin-terser';
import { eslint } from 'rollup-plugin-eslint';
export default [
{
input: 'src/main.js',
output: {
name: 'timeout',
file: '/lib/tool.js',
format: 'umd',
},
plugins: [
resolve(), // Rollup может найти `ms`
commonjs(), // Rollup может преобразовать `ms` в модуль ES
eslint(),
babel(),
terser(),
],
},
];
Сначала установите необходимые модули Babel:
npm i core-js @babel/core @babel/preset-env @babel/plugin-transform-runtime
Затем настройте файл .babelrc:
{
"presets": [
[
"@babel/preset-env",
{
"modules": false,
"useBuiltIns": "usage",
"corejs": "2.6.10",
"targets": {
"ie": 10
}
}
]
],
"plugins": [
// Решает проблему дублирования кода при использовании одного и того же кода в нескольких местах
["@babel/plugin-transform-runtime"]
],
"ignore": [
"node_modules/**"
]
}
@babel/preset-env может автоматически преобразовывать код ES2015+ в код ES5 в зависимости от целевой платформы браузера или среды выполнения. Обратите внимание, что мы установили «modules»: false, иначе Babel преобразует наши модули в CommonJS до того, как Rollup сможет обработать их, что приведёт к сбою некоторых операций Rollup.
Чтобы решить проблему дублирования кода, когда один и тот же код используется в разных местах, нам нужно настроить @babel/plugin-transform-runtime в разделе plugins файла .babelrc и изменить конфигурацию Rollup:
babel({
exclude: 'node_modules/**', // Предотвратить упаковку файлов в node_modules
runtimeHelpers: true, // Включить plugin-transform-runtime
}),
Мы можем настроить различные сценарии выполнения и переменные среды в package.json для настройки разработки и производства:
// package.json
"scripts": {
"dev": "rollup -c -w --environment NODE_ENV:development",
"build": "rollup -c --environment NODE_ENV:production",
"test": "node test/test.js"
},
Вручную экспортируйте NODE_ENV как production и development, чтобы различать производственную и разрабатываемую среды, а затем получите параметр через process.env.NODE_ENV в коде. Здесь мы в основном используем его для отключения сжатия кода в среде разработки:
const isDev = process.env.NODE_ENV !== 'production';
// ...
plugins: [!isDev && terser()];
Используйте rollup-plugin-eslint для настройки:
eslint({
throwOnError: true,
throwOnWarning: true,
include: ['src/**'],
exclude: ['node_modules/**'],
});
Создайте файл .eslintrc.js для настройки конкретных проверок в соответствии с вашими предпочтениями:
module.exports = {
env: {
browser: true,
es6: true,
node: true,
},
extends: 'eslint:recommended',
globals: {
Atomics: 'readonly',
SharedArrayBuffer: 'readonly',
ENV: true,
},
parserOptions: {
ecmaVersion: 2018,
sourceType: 'module',
},
rules: {
'linebreak-style': ['error', 'unix'],
quotes: ['error', 'single'],
},
}; ### external атрибут
При использовании Rollup для сборки нам нужно использовать сторонние библиотеки в нашем собственном коде, например, Lodash и т. д., но мы не хотим, чтобы JQuery появлялся в конечном собранном файле. В этом случае нам необходимо использовать атрибут external. Например, если мы используем Lodash, то конфигурация Rollup будет выглядеть следующим образом:
```js
import _ from 'lodash';
// rollup.config.js
{
input: 'src/main.js',
external: ['lodash'],
globals: {
lodash: '_'
},
output: [
{ file: pkg.main, format: 'cjs' },{ file: pkg.module, format: 'es' }
]
}
Мы можем экспортировать модули в форматах CommonJS, ES и в формате, который может быть распознан браузером, используя следующие настройки:
<script>
.Конфигурация может выглядеть так:
{
input: 'src/main.js',
external: ['ms'],
output: [
{ file: pkg.main, format: 'cjs' },
{ file: pkg.module, format: 'es' },
{ file: pkg.module, format: 'umd' }
]
}
Для публикации на npm необходимо выполнить следующие шаги:
npm adduser
.npm login
.npm publish
.name — это имя пакета, можно указать непосредственно имя пакета, например, loadash, или добавить домен, например, @koa/router, где @ — ваше имя пользователя на npm. key — ключевые слова пакета.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )