npm install - 为什么 node_modules 中的 javascript 代码在 es5 中
npm install - why javascript code in node_modules is in es5
在 npm install
之后,我按预期在 node_modules 中找到了代码 - 但它看起来与 Github 中的代码不同。
这是为什么?
我怎样才能得到原始的es6代码(假设我想调试它)?
示例 - 摘自 material-ui-pickers:
index.js 在 github
export { default as DatePicker } from './DatePicker';
export { default as TimePicker } from './TimePicker';
export { default as DateTimePicker } from './DateTimePicker';
export { default as MuiPickersUtilsProvider } from './utils/MuiPickersUtilsProvider';
index.js 在我的 node_modules
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _DatePicker = require('./DatePicker');
Object.defineProperty(exports, 'DatePicker', {
enumerable: true,
get: function get() {
return _interopRequireDefault(_DatePicker).default;
}
});
var _TimePicker = require('./TimePicker');
Object.defineProperty(exports, 'TimePicker', {
enumerable: true,
get: function get() {
return _interopRequireDefault(_TimePicker).default;
}
});
var _DateTimePicker = require('./DateTimePicker');
Object.defineProperty(exports, 'DateTimePicker', {
enumerable: true,
get: function get() {
return _interopRequireDefault(_DateTimePicker).default;
}
});
var _MuiPickersUtilsProvider = require('./utils/MuiPickersUtilsProvider');
Object.defineProperty(exports, 'MuiPickersUtilsProvider', {
enumerable: true,
get: function get() {
return _interopRequireDefault(_MuiPickersUtilsProvider).default;
}
});
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
模块是在发布之前构建的,这就是它在 ES5 上的原因。 你不应该触及 node_modules 中的任何东西。 拥有 NPM 或 Yarn 等包管理器的整个想法是,总有一种 确定性的方式安装软件包.
我不知道你为什么要触摸里面的一个模块,但如果你正在做的是那个模块的 PR,你应该关注他们 contribution guidelines,这是通常 "Clone repo, install, write code, submit PR and done".
当然,如果您想在项目中使用为该模块编写的代码,那么您应该阅读 npm link or yarn link。这样你就可以 link 将本地目录中的模块添加到你的项目中。这将使您更容易在模块上开发您想要的功能,并在您的项目中对其进行测试。
在 npm install
之后,我按预期在 node_modules 中找到了代码 - 但它看起来与 Github 中的代码不同。
这是为什么?
我怎样才能得到原始的es6代码(假设我想调试它)?
示例 - 摘自 material-ui-pickers:
index.js 在 github
export { default as DatePicker } from './DatePicker';
export { default as TimePicker } from './TimePicker';
export { default as DateTimePicker } from './DateTimePicker';
export { default as MuiPickersUtilsProvider } from './utils/MuiPickersUtilsProvider';
index.js 在我的 node_modules
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _DatePicker = require('./DatePicker');
Object.defineProperty(exports, 'DatePicker', {
enumerable: true,
get: function get() {
return _interopRequireDefault(_DatePicker).default;
}
});
var _TimePicker = require('./TimePicker');
Object.defineProperty(exports, 'TimePicker', {
enumerable: true,
get: function get() {
return _interopRequireDefault(_TimePicker).default;
}
});
var _DateTimePicker = require('./DateTimePicker');
Object.defineProperty(exports, 'DateTimePicker', {
enumerable: true,
get: function get() {
return _interopRequireDefault(_DateTimePicker).default;
}
});
var _MuiPickersUtilsProvider = require('./utils/MuiPickersUtilsProvider');
Object.defineProperty(exports, 'MuiPickersUtilsProvider', {
enumerable: true,
get: function get() {
return _interopRequireDefault(_MuiPickersUtilsProvider).default;
}
});
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
模块是在发布之前构建的,这就是它在 ES5 上的原因。 你不应该触及 node_modules 中的任何东西。 拥有 NPM 或 Yarn 等包管理器的整个想法是,总有一种 确定性的方式安装软件包.
我不知道你为什么要触摸里面的一个模块,但如果你正在做的是那个模块的 PR,你应该关注他们 contribution guidelines,这是通常 "Clone repo, install, write code, submit PR and done".
当然,如果您想在项目中使用为该模块编写的代码,那么您应该阅读 npm link or yarn link。这样你就可以 link 将本地目录中的模块添加到你的项目中。这将使您更容易在模块上开发您想要的功能,并在您的项目中对其进行测试。