Pet*_*ton 7 javascript module ecmascript-6
是否可以检查JavaScript文件是否正在直接运行,或者是否需要将其作为es6模块导入的一部分。
例如,包含一个主脚本。
// main.js
import './other';
if (mainTest){
console.log('This should run');
}
Run Code Online (Sandbox Code Playgroud)
导入依赖项。
// other.js
if (mainTest){
console.log('This should never run');
}
Run Code Online (Sandbox Code Playgroud)
包括<script src=main.js></script>应该导致来自main.jsother.js 的控制台消息,但不会导致。
Node.js现在支持ES6 模块的替代方案。使用新的import.meta内置。
例子:
// main.mjs
import "./lib.mjs"
import { fileURLToPath } from "url";
if (process.argv[1] === fileURLToPath(import.meta.url)) {
console.log(`main ran!`);
}
Run Code Online (Sandbox Code Playgroud)
// lib.mjs
import { fileURLToPath } from "url";
if (process.argv[1] === fileURLToPath(import.meta.url)) {
console.log(`lib ran!`);
}
Run Code Online (Sandbox Code Playgroud)
和我们的输出:
main ran!
Run Code Online (Sandbox Code Playgroud)
module.parent 会帮助你:
if(module.parent) {
console.log('required module')
} else {
console.log('main')
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
981 次 |
| 最近记录: |