我正在使用rollup
和rollup-plugin-node-resolve
构建一个React库。
在我的图书馆中,我对json-diff
和jsoneditor
,我想将它与库捆绑在一起,这样我库的使用者就不必手动安装它们。
因此,我已经使用json-diff
选项将resolve
包含在only
中。但是,当我这样做时,rollup
会通知我一些其他未处理的依赖项-json-diff
的传递性依赖项:
(!)未解决的依赖项 https://rollupjs.org/guide/en#warning-treating-module-as-external-dependency difflib(由node_modules \ json-diff \ lib \ index.js导入, commonjs-external:difflib)cli-color(由导入 node_modules \ json-diff \ lib \ colorize.js,commonjs-external:cli-color)
我想知道,我做错了什么吗?这是正确的解决方法吗?我想包括json-diff
及其依赖项。我是否必须列出所有传递依赖项?对于json-diff
来说,它并不那么麻烦,但是我还有其他类似的jsoneditor
,而且列表很长。
这是我的rollup.config.js
:
import resolve from 'rollup-plugin-node-resolve';
import babel from 'rollup-plugin-babel';
import commonjs from 'rollup-plugin-commonjs';
import json from 'rollup-plugin-json';
import pkg from './package.json';
import postcss from 'rollup-plugin-postcss';
export default {
input: 'index.js',
external: ['react', 'prop-types', 'uwr-react-widgets', 'json-diff', 'jsoneditor'],
output: [{ file: pkg.module, format: 'esm' }],
plugins: [
resolve({
only: [
'ajv',
'ajv-errors',
'ajv-keywords',
'enumify',
'lodash-es',
'moment-timezone',
'bigdecimal',
'fast-json-stable-stringify',
'fast-deep-equal',
'uri-js',
'json-schema-traverse',
'moment',
],
}),
babel({
exclude: 'node_modules/**',
}),
commonjs({ extensions: ['.js', '.jsx'] }),
json(),
postcss({
autoModules: true,
namedExports: true,
modules: true,
extensions: ['.css', '.less'],
}),
],
};