我们正在尝试找出使用 Webpack 在 Vue 单文件组件中处理 CSS 树抖动的正确方法。
在 package.json 中,我有:"sideEffects": ["*.css", "*.less","*.vue" ],这似乎可以正常工作以阻止 Vue 组件在不应该加载的情况下加载。但是,<style>来自 SFC 的每个标签都已加载到页面上。
我们如何加载我们的 SFC 是从一个列出了一堆导出的 NPM 包,比如
export blah from 'blah.vue';
export blah2 from 'blah2.vue';
export blah3 from 'blah3.vue';
Run Code Online (Sandbox Code Playgroud)
即使在我们的 JavaScript 中,import { blah3 } from 'a-npm-package';它也包含了所有三种样式。由于我们有很多 Vue 组件,这导致许多未使用的 CSS 被添加到页面中。
我们怎样才能防止这种情况发生?必须有一种更好、更动态的方式来处理样式,而不是仅仅将它们全部转储到页面中,即使只有 1/10 的样式被使用?
谢谢
我["@babel/plugin-syntax-dynamic-import"]在我的.babelrc文件中,并且我能够成功地对我自己项目中的 Vue 文件使用动态导入,但是当我尝试导入 node/npm 模块import App from '@something/app';时,在使用 Webpack 构建时出现此错误:
SyntaxError: \node_modules\@something\app\src\SomeApp.vue: Support for the experimental syntax 'dynamicImport' isn't currently enabled (16:19):
14 | name: 'SomeApp',
15 | components: {
> 16 | SomeCompontent: () => import('./some-dir/SomeCompontent.vue'),
| ^
Add @babel/plugin-syntax-dynamic-import (https://git.io/vb4Sv) to the 'plugins' section of your Babel config to enable parsing.
Run Code Online (Sandbox Code Playgroud)
@babel/plugin-syntax-dynamic-import 在我的项目和正在导入的节点模块中作为插件启用,但 Babel 出于某种原因不尊重它。
在导入节点模块时,我需要做些什么才能让 Babel 应用这个插件?
谢谢
这是我的课:
class Network {
protected $value = null;
protected $properties = array();
public $type = null;
function __construct($value = null, $type = null) {
$this->value = $value;
$this->type = $type;
}
public function __set($name, $value) {
if(isset($this->{$name})) {
$this->{$name} = $value;
} else {
$this->properties[$name] = new self($value, null);
}
}
public function __get($name) {
return $this->properties[$name]->value;
}
public function __toString() {
return $this->value;
}
}
Run Code Online (Sandbox Code Playgroud)
这就是我想要做的:
$networks = new \stdClass();
$networks->test= new \Orange_Post\Network('Test');
$networks->test->enabled = true;
$networks->test->enabled->type = 'boolean'; …Run Code Online (Sandbox Code Playgroud)