为什么从rollup.config文件中的'./package.json'导入{版本}提示版本未定义

时间:2018-10-03 13:41:29

标签: rollupjs rollup-plugin-license

我有两种方法从package.json文件导入version。并且提示错误Error transforming bundle with 'rollup-plugin-license' plugin: version is not defined。请查看我的以下代码。

import pkg from "./package.json";
import {version} from "./package.json";
import license from 'rollup-plugin-license';
export default {
  input: './src/a.js',
  output: {
    file: 'a.js',
    format: 'cjs',
  },
  plugins: [ 
    license({
      banner: `V<%= pkg.version %>`, //this works fine
      banner: `V<%= version %>`, //prompts version is not defined
    }),          
  ]
};

1 个答案:

答案 0 :(得分:0)

banner: `V<%= pkg.version %>, //this works fine 

此语句之所以有效,是因为您要使用以下命令将package.json导入pkg:import pkg from "./package.json";,而您的 package.json是JSON对象,因此您可以使用点表示法引用JSON对象的属性。在这种情况下,为package.json 的 version属性。但是,此操作将失败:banner: <V%= version %>, //prompts version is not defined ,因为您尚未在package.json中定义版​​本导出,因此当您使用时:import {version} from "./package.json";版本未定义。有关ES6导入/导出模块的快速说明,请参见:https://medium.com/@trekinbami/a-not-so-in-depth-explanation-of-es6-modules-import-and-export-13a80300f2f0