假设我有一个名为module.js
:
export default function greet() { console.info( 'hello' ); }
Run Code Online (Sandbox Code Playgroud)
在module.js
(在 function 内部或外部greet
)内,如何确定模块是否已使用以下方式加载:
<script type=module src="./module.js">
Run Code Online (Sandbox Code Playgroud)
相对:
<script type=module>
import greet from './module.js';
</script>
Run Code Online (Sandbox Code Playgroud)
不管怎样,import.meta
是相同的,document.currentScript
是null
, 和 NodeJS 的require
(因此require.main
) 和module
都是undefined
。
谢谢!
PHP专家!我正在尝试根据 PHP 的方式(使用 7.0)使我的代码更加模块化,这是我创建自己的命名空间 + Composer 包 + git 存储库的组合的第一个实验。
我的包目录:
packagedir
|__src
| |__myfunc.php
|__composer.json
Run Code Online (Sandbox Code Playgroud)
myfunc.php:
namespace MyNS\MySubNS;
function myfunc() { return 1; }
Run Code Online (Sandbox Code Playgroud)
packagedir/composer.json:
{
"name": "myns/mysubns",
...
"autoload": {
"psr-4": { "MyNS\\MySubNS\\": "src" }
}
}
Run Code Online (Sandbox Code Playgroud)
全部签入存储库packagedir/.git.
Composer安装后我的项目目录:
public_html
|__vendor
| |__composer
| | |__ [all the usual autoload_* stuff, etc.]
| |__myns
| | |__mysubns
| | |__src
| | | |__myfunc.php
| | |__composer.json
| |__autoload.php
|__composer.json
|__composer.lock
|__index.php
Run Code Online (Sandbox Code Playgroud)
public_html/composer.json:
{
"require": {
"myns/mysubns": …
Run Code Online (Sandbox Code Playgroud)